《容器云运维实战》

简介

一本讲解k8s的书籍,不仅讲了docker,还有swarm,k8s,以及基础的linux运维相关的内容。当然,本书对k8s的覆盖面也很好,包含了k8s基本名词讲解、安装、kubectl命令、pod、service、监控等。

笔记

  • P14 讲解了ansible自动化运维,对于分散在各地的非集群的计算机来说效果很好。
  • P160 讲解了docker-compose的相关内容。如果你的计算机不适合部署k8s,那么使用ansible配合docker-compose也是不错的选择。
  • P309 kubectl的命令行比较复杂,可以随时查看。
  • P349 service非常优雅,能够把所有服务通过hostname和url暴露出来。

感想

这本书应该是我第一次接触k8s时看的,当时只认为是一种新技术。没想到随后一家公司打算将桌面云从swarm迁移到k8s,我自告奋勇当技术顾问。这期间的不少问题都是通过查阅这本书解决的。忙完公司的事情后,我也在家里部署了一套k8s,但是无奈网络架构问题导致效率特别低,又换回了经典的docker-compose方式。

目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
第1章 Linux 运维基础 1
1.1 Linux基础 2
1.1.1 systemd 2
1.1.2 Shell脚本 6
1.2 自动化运维 14
1.2.1 自动化运维之Ansible 14
1.2.2 Ansible的使用 16
1.2.3 Ansible模块 23
1.2.4 playbook 27
1.3 本章小结 38
第2章 高可用的Linux集群 39
2.1 高可用集群基础 40
2.1.1 高可用衡量标准 40
2.1.2 高可用层次结构 40
2.1.3 常见的高可用方案 41
2.2 虚拟服务的实现 44
2.2.1 DNS轮询 44
2.2.2 客户端调度 45
2.2.3 应用层负载调度 46
2.2.4 IP层负载调度 46
2.3 LVS负载均衡 46
2.3.1 LVS体系结构 47
2.3.2 IP负载均衡 48
2.3.3 负载调度算法 54
2.3.4 ipvsadm工具详解 56
2.3.5 LVS集群实践 58
2.4 Nginx负载均衡 63
2.4.1 Nginx配置文件详解 63
2.4.2 Nginx负载均衡模块 68
2.5 本章小结 75
第3章 Docker容器引擎 76
3.1 容器技术 77
3.1.1 虚拟化技术 77
3.1.2 容器技术与Docker 79
3.1.3 容器技术原理 84
3.2 Docker基础 89
3.2.1 Docker架构 89
3.2.2 Docker安装 91
3.2.3 Docker命令 96
3.3 Docker镜像 97
3.3.1 认识镜像 97
3.3.2 镜像操作 99
3.3.3 Dockerfile详解 103
3.3.4 镜像仓库 118
3.4 Docker容器 121
3.4.1 认识容器 121
3.4.2 容器操作 123
3.4.3 数据卷 134
3.5 插件与存储驱动 138
3.5.1 Docker插件 138
3.5.2 存储驱动 139
3.6 容器与操作系统 140
3.6.1 为容器而打造:Container Linux(CoreOS) 140
3.6.2 定制化容器系统:RancherOS 142
3.7 本章小结 143
第4章 容器网络 144
4.1 Docker网络基础 145
4.1.1 端口映射 145
4.1.2 端口暴露 146
4.1.3 容器互联 147
4.2 Docker网络模式 152
4.2.1 none模式 152
4.2.2 container模式 154
4.2.3 host模式 155
4.2.4 bridge模式 156
4.2.5 overlay模式 157
4.3 Docker网络配置 158
4.3.1 Daemon网络参数 158
4.3.2 配置DNS 159
4.4 本章小结 159
第5章 容器编排 160
5.1 安装Docker Compose 161
5.1.1 二进制安装 161
5.1.2 使用Python pip安装 161
5.2 Compose命令基础 162
5.2.1 指定配置文件 162
5.2.2 指定项目名称 163
5.2.3 Compose环境变量 163
5.2.4 build:构建服务镜像 164
5.2.5 bundle:生成DAB包 165
5.2.6 config:检查配置语法 165
5.2.7 create:创建服务容器 166
5.2.8 down:清理项目 167
5.2.9 events:查看事件 168
5.2.10 exec:进入服务容器 168
5.2.11 kill:杀死服务容器 169
5.2.12 logs:查看服务容器日志 169
5.2.13 pause:暂停服务容器 170
5.2.14 port:查看服务容器端口状态 170
5.2.15 ps/images:查看容器与镜像 171
5.2.16 pull:拉取项目镜像 172
5.2.17 push:推送项目镜像 172
5.2.18 restart:重启服务容器 173
5.2.19 rm:删除项目容器 173
5.2.20 run:执行一次性命令 174
5.2.21 scale:设置服务容器数量 177
5.2.22 start:启动服务容器 178
5.2.23 stop:停止服务容器 178
5.2.24 top:查看进程状态 178
5.2.25 unpause:取消暂停 179
5.2.26 up:启动项目 179
5.3 Compose配置文件 183
5.3.1 配置文件基础 183
5.3.2 基本配置 184
5.3.3 网络配置 199
5.3.4 配置扩展 200
5.4 Compose实战 204
5.4.1 WordPress博客部署 204
5.4.2 Django框架部署 205
5.5 本章小结 207
第6章 Docker集群管理 208
6.1 Swarm 基础 209
6.1.1 Docker Swarm 命令 209
6.1.2 Docker Node 命令 211
6.1.3 Docker Stack 命令 213
6.1.4 Docker集群网络 214
6.2 集群进阶 223
6.2.1 Swarm:高可用的Docker集群管理工具 223
6.2.2 Shipyard:集群管理面板 225
6.2.3 Portainer:容器管理面板 227
6.3 本章小结 229
第7章 Docker生态 230
7.1 宿主管理工具:Machine 231
7.1.1 Machine的安装 231
7.1.2 宿主环境管理 231
7.2 容器编排调度 233
7.2.1 Rancher:集群管理面板 233
7.2.2 Nomad:行业领先的调度系统 235
7.2.3 DC/OS:一切皆可调度 237
7.2.4 服务发现 238
7.3 私有镜像仓库 239
7.3.1 私有仓库的部署 239
7.3.2 VMware Harbor:企业私有
仓库 250
7.3.3 SUSE Portus:镜像仓库前端
分布认证 254
7.4 Docker插件 256
7.4.1 授权插件 256
7.4.2 Flocker存储插件 257
7.4.3 网络驱动插件 257
7.5 Docker安全 259
7.5.1 Docker安全机制 259
7.5.2 Docker资源控制 261
7.5.3 Docker安全工具 264
7.6 监控与日志 265
7.6.1 cAdvisor:原生集群监控 265
7.6.2 Logspout:日志处理 266
7.6.3 Grafana:数据可视化 267
7.6.4 其他监控工具 269
7.7 基于Docker的PaaS平台 270
7.7.1 Deis:轻量级PaaS平台 270
7.7.2 Tsuru:可扩展PaaS平台 270
7.7.3 Flynn:模块化PaaS平台 271
7.8 Docker持续集成 271
7.8.1 Drone:轻量级CI工具 271
7.8.2 Travis CI:著名的CI/CD
服务商 273
7.9 其他 274
7.10 本章小结 276
第8章 Kubernetes入门 277
8.1 Kubernetes介绍 278
8.1.1 什么是Kubernetes 278
8.1.2 Kubernetes架构 278
8.1.3 Kubernetes的优势 280
8.2 Kubernetes概念 281
8.2.1 Kubernetes资源 281
8.2.2 调度中心:Master 281
8.2.3 工作节点:Node 281
8.2.4 最小调度单位:Pod 283
8.2.5 资源标签:Label 284
8.2.6 弹性伸缩:RC与RS 286
8.2.7 部署对象:Deployment 287
8.2.8 水平扩展:HPA 288
8.2.9 服务对象:Service 290
8.2.10 数据卷资源:Volume 293
8.2.11 数据持久化:Persistent
Volume 299
8.2.12 命名空间:Namespace 304
8.2.13 注释:Annotation 304
8.3 Kubernetes部署 305
8.3.1 使用Minikube安装Kubernetes 305
8.3.2 使用Kubeadm安装Kubernetes 307
8.4 Kubernetes命令行详解 309
8.4.1 基本命令(初级) 310
8.4.2 基本命令(中级) 318
8.4.3 部署命令 320
8.4.4 集群管理命令 323
8.4.5 故障排除与调试命令 326
8.4.6 高级命令 329
8.4.7 设置命令 330
8.4.8 其他命令 332
8.4.9 kubectl全局选项 334
8.5 本章小结 335
第9章 Kubernetes运维实践 336
9.1 Pod详解 337
9.1.1 Pod配置详解 337
9.1.2 Pod生命周期 340
9.1.3 共享Volume 343
9.1.4 Pod配置管理 343
9.1.5 Pod健康检查 346
9.1.6 Pod扩容和缩容 348
9.2 Service详解 349
9.2.1 Service的定义 349
9.2.2 Service的创建 350
9.2.3 集群外部访问 351
9.2.4 Ingress负载网络 353
9.3 集群进阶 355
9.3.1 资源管理 355
9.3.2 kubelet垃圾回收机制 359
9.4 监控与日志 359
9.4.1 原生监控:Heapster 359
9.4.2 星火燎原:Prometheus 360
9.4.3 王牌组合:EFK 366
9.4.4 后起之秀:Filebeat 374
9.5 本章小结 376
0%