容器云运维实战——Docker与Kubernetes集群
定 价:89 元
- 作者:黄靖钧
- 出版时间:2019/2/1
- ISBN:9787121339066
- 出 版 社:电子工业出版社
- 中图法分类:TP316.85
- 页码:384
- 纸张:
- 版次:01
- 开本:16开
本书围绕当前容器云运维的主流框架:Docker、Kubernetes详细介绍了容器云运维的实战技巧,在内容上分为三大部分:第一部分(第1~2章)介绍了在Linux系统中传统服务器运维的基础知识以及集群管理工具;第二部分(第3~7章)讲解了以Docker为主的容器引擎的基本知识与原理,并介绍了容器技术在DevOps中的实际应用场景;第三部分(第8~9章)详细讲解了基于Kubernetes的容器云集群运维技巧。全书几乎囊括了容器云主流的运维开发生态,详细讲解了基于容器云的集群运维解决方案。本书适合容器云初学者,也适合那些对Docker有一定了解,但对容器云的运维方式不甚了解的读者。
黄靖钧,95 后,全栈开发者,长期以来一直使用容器技术作为应用部署方案,在 Docker 容器实战方面经验丰富。曾参与多个 PaaS 与 CaaS (容器即服务)项目开发,现从事 Serverless 与 SDN 等领域的研究。
第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