《Linux云计算Kubernetes实战》从实用的角度出发,详细介绍了Kubernetes的相关理论与应用,包括Kubernetes组件概念、Kubernetes云计算平台配置实战、Kubernetes企业网络Flannel实战、Kubernetes核心组件services实战、Kubernetes Pod容器升级实战、Kubernetes NFS持久化存储实战、Kubernetes CephFS持久化存储实战、Kubernetes Ceph RBD持久化存储实战、Prometheus监控Kubernetes实战、Kubernetes etcd服务实战、Kubernetes HAProxy高可用集群和Kubernetes配置故障实战。 《Linux云计算Kubernetes实战》免费提供与书中内容相关的视频课程讲解,以指导读者深入地进行学习,详见前言中的说明。 《Linux云计算Kubernetes实战》既可作为高等学校计算机相关专业的教材,也可作为系统管理员、网络管理员、Linux运维工程师及网站开发、测试、设计等人员的参考用书。
本丛书融入作者十多年Linux运维经验,尽是干货。通过对Linux技术领域重要知识点的剖析及简单明了的实例介绍,帮助读者在较短的时间内掌握Linux云计算相关运维技能,成为专业的Linux高级技术人才。书中结构清晰,内容全面,由浅入深,讲解很详细,是难得的将理论 概念 实战结合于一体的书籍,十分适合作为手边的实战参考书,相信能给读者带来新的想法和收获。
Linux 是当今三大操作系统(Windows、macOS、Linux)之一,其创始人是林纳斯·托瓦兹①。
林纳斯·托瓦兹 21 岁时用 4 个月的时间首次创建了 Linux 内核,于 1991 年 10 月 5 日正式对
外发布。Linux 系统继承了 UNIX 系统以网络为核心的思想,是一个性能稳定的多用户网络操
作系统。
20 世纪 90 年代至今,互联网飞速发展,IT 引领时代潮流,而 Linux 系统是一切 IT 的基石,
其应用场景涉及方方面面,小到个人电脑、智能手环、智能手表、智能手机等设备,大到服务
器、云计算、大数据、人工智能、数字货币、区块链等领域。
为什么写《Linux 云计算Kubernetes 实战》这本书?这要从我的经历说起。我出生在贵
州省一个贫困的小山村,从小经历了砍柴、放牛、挑水、做饭,日出而作、日落而归的朴素生
活,看到父母一辈子都生活在小山村里,没有见过大城市,所以从小立志要走出大山,要让父
母过上幸福的生活。正是这样的信念让我不断地努力。大学毕业至今,我在北漂的 IT 运维
路上已走过了十多年:从初创小公司到国有企业、机关单位,再到图吧、研修网、京东商城等
IT 企业,分别担任过 Linux 运维工程师、Linux 运维架构师、运维经理,直到现在创办的京峰教
育培训机构。
一路走来,很感谢生命中遇到的每一个人,是大家的帮助,让我不断地进步和成长,也让
我明白了一个人活着不应该只为自己和自己的家人,还要考虑到整个社会,哪怕只能为社会贡
献一点点价值,人生就是精彩的。
为了帮助更多的人通过技术改变自己的命运,我决定和团队同事一起编写这本书。虽然市
面上关于 Linux 的书籍有很多,但是很难找到一本关于 Kubernetes 组件概念、Kubernetes 平台配
置实战、Kubernetes 企业网络 Flannel 实战、Kubernetes 核心组件 services 实战、Kubernetes Pod
容器升级实战、Kubernetes NFS 持久化存储实战、Kubernetes CephFS 持久化存储实战、
① 创始人全称是 Linus Benedict Torvalds(林纳斯·本纳第克特·托瓦兹)。
II Linux 云计算Kubernetes 实战
Kubernetes Ceph RBD 持久化存储实战、Prometheus 监控 Kubernetes 实战、Kubernetes etcd 服务
实战、Kubernetes HAProxy高可用集群和 Kubernetes 配置故障实战等的详细、全面的主流技术
书籍,这就是编写本书的初衷。
配套资源
程序代码、面试题目、学习路径、工具手册、简历模板等资料,请扫描下方二维码下载
或者到清华大学出版社官方网站本书页面下载。
配套资源
作者精心录制了与 Linux 开发相关的视频课程(3000 分钟,144 集),便于读者自学。扫
描封底文泉课堂刮刮卡中的二维码进行绑定后即可观看(注:视频内容仅供学习参
考,与书中内容并非一一对应)。
虽然已花费大量的时间和精力核对书中的代码和内容,但难免存在纰漏,恳请读者批评
指正。
吴光科
2023 年 4 月
前 言
致谢
ACKNOWLEDGEMENT
感谢 Linux 之父 Linus Benedict Torvalds,他不仅创造了 Linux 系统,还影响了整个开源世界,
也影响了我的一生。
感谢我亲爱的父母,含辛茹苦地抚养我们兄弟三人,是他们对我无微不至的照顾,让我有
更多的精力和动力去工作,去帮助更多的人。
感谢吴俊、李芬伦、陈权志、胡智超、焦伟、曾地长、孙峰、黄超、赵敬星、曾令军、张
杰、丁刘倩、刘刭波、班风仑及其他挚友多年来对我的信任和鼓励。
感谢腾讯课堂所有的课程经理及平台老师,感谢 51CTO 副总裁一休及全体工作人员对我及
京峰教育培训机构的大力支持。
感谢京峰教育培训机构的每位学员对我的支持和鼓励,希望他们都学有所成,最终成为社
会的中流砥柱。感谢京峰教育首席运营官蔡正雄,感谢京峰教育培训机构的辛老师、朱老师、
张老师、关老师、兮兮老师、小江老师、可馨老师等全体老师和助教、班长、副班长,是他们
的大力支持,让京峰教育能够帮助更多的学员。
最后要感谢我的爱人黄小红,是她一直在背后默默地支持我、鼓励我,让我有更多的精力
和时间去完成这本书。
吴光科
2023 年 4 月
第 1 章 Kubernetes 组件概念 . 1
1.1 云计算概念 .1
1.2 云计算技术的分类 1
1.3 Kubernetes 入门及概念介绍.2
1.4 Kubernetes 平台组件概念 3
1.5 Kubernetes 工作原理剖析 4
1.6 Pod 概念剖析 7
1.7 label 概念剖析.8
1.8 Replication Controller 概念剖析 8
1.9 service 概念剖析9
1.10 node 概念剖析 .10
1.11 Kubernetes volume 概念剖析.10
1.12 Deployment 概念剖析.11
1.13 DaemonSet 概念剖析11
1.14 StatefulSet 概念剖析.11
1.15 ConfigMap 概念剖析 12
1.16 Secrets 概念剖析13
1.17 CronJob 概念剖析 14
1.18 Kubernetes 证书剖析和制作实战 .15
第 2 章 Kubernetes 云计算平台配置实战 . 25
2.1 Kubernetes 节点 hosts 及防火墙设置25
2.2 Linux 内核参数设置和优化 .26
2.3 Docker 虚拟化案例实战.26
2.4 Kubernetes 添加部署源27
2.5 Kubernetes Kubeadm 案例实战.28
2.6 Kubernetes master 节点实战 .30
2.7 Kubernetes 集群节点和删除.31
2.8 Kubernetes 节点网络配置 31
2.9 Kubernetes 开启 IPVS 模式 39
2.10 Kubernetes 集群故障排错 40
VI Linux 云计算Kubernetes 实战
2.11 Kubernetes 集群节点移除 40
2.12 etcd 分布式案例操作 .40
第 3 章 Kubernetes 企业网络 Flannel 实战. 42
3.1 Flannel 工作原理.42
3.2 Flannel 架构介绍.43
3.3 Kubernetes Dashboard UI 实战 44
3.4 Kubernetes YAML 文件详解.47
3.5 kubectl 常见指令操作49
3.6 Kubernetes 本地私有仓库实战.50
第 4 章 Kubernetes 核心组件 service 实战. 52
4.1 Kubernetes service 概念52
4.2 Kubernetes service 实现方式.53
4.3 service 实战:ClusterIP 案例演练 54
4.4 service 实战:NodePort 案例演练.55
4.5 service 实战:LoadBalancer 案例演练 56
4.6 service 实战:Ingress 案例演练58
4.7 Kubernetes Traefik 案例实战 63
第 5 章 Kubernetes 容器升级实战 73
5.1 Kubernetes 容器升级概念 73
5.2 Kubernetes 容器升级实现方式.73
5.3 Kubernetes 容器升级测试 75
5.4 Kubernetes 容器升级验证 76
5.5 Kubernetes 容器升级回滚 77
5.6 Kubernetes 滚动升级和回滚原理 .78
第 6 章 Kubernetes NFS 持久化存储实战 . 82
6.1 Kubernetes 服务运行状态 82
6.2 Kubernetes 存储系统 .83
6.3 Kubernetes 存储绑定的概念.84
6.4 PV 的访问模式84
6.5 Kubernetes NFS 静态存储模式86
6.6 PVC 存储卷创建 .87
6.7 Nginx 整合 PV 存储卷 .88
6.8 Kubernetes NFS 动态存储模式90
6.9 NFS 插件配置实战 91
第 7 章 Kubernetes CephFS 持久化存储实战 . 96
7.1 Kubernetes CephFS 静态存储模式.96
目录 VII
7.2 PV 存储卷创建96
7.3 PVC 存储卷创建 .97
7.4 Nginx 整合 CephFS PV 存储卷 .98
7.5 Kubernetes CephFS 动态存储模式. 100
7.6 CephFS 动态插件配置实战 101
第 8 章 Kubernetes Ceph RBD 持久化存储实战 . 105
8.1 Kubernetes Ceph RBD 静态存储模式. 105
8.2 PV 存储卷创建 105
8.3 PVC 存储卷创建 . 107
8.4 Nginx 整合 Ceph PV 存储卷 . 107
8.5 Kubernetes Ceph RBD 动态存储模式. 109
8.6 Ceph RBD 插件配置实战 . 110
第 9 章 Prometheus 监控 Kubernetes 实战 117
9.1 Prometheus 监控优点 . 117
9.2 Prometheus 监控特点 . 118
9.3 Prometheus 组件实战 . 118
9.4 Prometheus 体系结构 . 119
9.5 Prometheus 工作流程 . 120
9.6 Prometheus 和 Kubernetes 背景. 120
9.7 Kubernetes 集群部署 node-exporter 121
9.8 Kubernetes 集群部署 Prometheus 122
9.9 Kubernetes 集群部署 Grafana . 129
9.10 Kubernetes 配置和整合 Prometheus 131
9.11 Kubernetes Prometheus 报警设置 . 135
9.12 Kubernetes Alertmanager 实战. 136
9.13 Alertmanager 实战部署. 140
第 10 章 Kubernetes etcd 服务实战 146
10.1 etcd 和 ZK 服务概念 146
10.2 etcd的使用场景 147
10.3 etcd读写性能 147
10.4 etcd工作原理 147
10.5 etcd选主. 148
10.6 etcd日志复制 148
10.7 etcd安全性 149
10.8 etcd使用案例 150
10.9 etcd接口使用 150
VIII Linux 云计算Kubernetes 实战
第 11 章 Kubernetes HAProxy 高可用集群 . 151
11.1 Kubernetes 高可用集群概念. 151
11.2 Kubernetes 高可用工作原理. 151
11.3 HAProxy 安装配置. 152
11.4 配置 Keepalived 服务. 156
11.5 Keepalived master 配置实战 157
11.6 Keepalived Backup 配置实战 158
11.7 创建 HAProxy 检查脚本. 160
11.8 HAProxy Keepalived 验证 160
11.9 初始化 master 集群 161
11.10 Kubernetes Dashboard UI 实战 163
第 12 章 Kubernetes 配置故障实战 166
12.1 etcd 配置中心故障错误一 166
12.2 etcd 配置中心故障错误二 167
12.3 Pod infrastructure 故障错误三. 167
12.4 Docker 虚拟化故障错误四 . 168
12.5 Docker 虚拟化故障错误五 . 168
12.6 Dashboard API 故障错误六 168
12.7 Dashboard 网络访问故障错误七 169