根据Docker1.10和Kubernetes1.2全方位升级
一本书讲透Docker和Kubernetes
从源代码方面深度解读Docker关键基本原理
Kubernetes源代码彻底讲解*实践活动
普遍包含Docker高級实践活动方法
全方位整理流行器皿云计算技术构架方式
这书依据Docker1.10版和Kubernetes1.2版对第1版开展了全方位升级,从践行者的视角来看,以Docker和Kubernetes为重中之重,顺着“基础使用方法详细介绍”到“关键基本原理讲解”到“高級实践活动方法”的构思,一本书讲透当今流行的器皿和器皿云计算技术,有利于阅读者在具体情景中运用Docker器皿和器皿云解决困难并启迪新的思索。本书包含两一部分,首一部分深层次讲解Docker器皿技术性,包含Docker构架与设计方案、关键源代码讲解和高級实践活动方法;第二一部分梳理和较为了三类根据Docker的流行器皿云新项目,包含潜心Docker器皿编辑与布署的器皿云、潜心运用支撑点的器皿云及其一切皆器皿的Kubernetes,从而详细分析了Kubernetes关键源代码的设计方案与保持,详细介绍了几类典型性情景下的Kubernetes实践活动。这书适用有一定Docker基本的开发人员、系统架构师、IT技术专业学员及其探寻根据Docker搭建云操作系统的专业技术人员,也特别适合做为高等院校教材内容或培训课件。
目录
- 第一部分 Docker深入解读
- 第1章 从容器到容器云 2
- 1.1 云计算平台 2
- 1.2 容器,新的革命 3
- 1.3 进化:从容器到容器云 7
- 第2章 Docker 基础 8
- 2.1 Docker的安装 8
- 2.2 Docker操作参数解读 9
- 2.3 搭建你的第一个Docker应用栈 16
- 2.3.1 Docker集群部署 16
- 2.3.2 第一个Hello World 17
- 2.3.3 开发、测试和发布一体化 27
- 第3章 Docker核心原理解读 28
- 3.1 Docker背后的内核知识 28
- 3.1.1 namespace资源隔离 28
- 3.1.2 cgroups资源限制 45
- 3.2 Docker架构概览 53
- 3.2.1 Docker daemon 54
- 3.2.2 Docker client 54
- 3.2.3 镜像管理 54
- 3.2.4 execdriver、volumedriver、graphdriver 55
- 3.2.5 network 55
- 3.3 client和daemon 56
- 3.3.1 client模式 56
- 3.3.2 daemon模式 58
- 3.3.3 从client到daemon 64
- 3.4 libcontainer 67
- 3.4.1 libcontainer的工作方式 69
- 3.4.2 libcontainer实现原理 70
- 3.4.3 使用runC与libcontainer进行交互 75
- 3.5 Docker镜像管理 77
- 3.5.1 什么是Docker镜像 77
- 3.5.2 Docker镜像关键概念 80
- 3.5.3 Docker镜像构建操作 81
- 3.5.4 Docker镜像的分发方法 84
- 3.6 Docker存储管理 87
- 3.6.1 Docker镜像元数据管理 87
- 3.6.2 Docker存储驱动 89
- 3.7 Docker数据卷 99
- 3.7.1 数据卷的使用方式 100
- 3.7.2 数据卷原理解读 105
- 3.8 Docker网络管理 108
- 3.8.1 Docker网络基础 108
- 3.8.2 Docker daemon网络配置原理 116
- 3.8.3 libcontainer网络配置原理 119
- 3.8.4 传统的link原理解析 125
- 3.8.5 新的link介绍 127
- 3.9 Docker与容器安全 129
- 3.9.1 Docker的安全机制 129
- 3.9.2 Docker安全问题 135
- 3.9.3 Docker安全的解决方案 139
- 第4章 Docker 高级实践技巧 151
- 4.1 容器化思维 151
- 4.1.1 SSH服务器的替代方案 151
- 4.1.2 Docker内应用日志管理方案 152
- 4.1.3 容器化思维及更多 153
- 4.2 Docker高级网络实践 153
- 4.2.1 玩转Linux networknamespace 154
- 4.2.2 pipework原理解析 159
- 4.2.3 pipework跨主机通信 165
- 4.2.4 OVS划分VLAN 170
- 4.2.5 OVS隧道模式 174
- 4.3 Dockerfile最佳实践 187
- 4.3.1 Dockerfile的使用 187
- 4.3.2 Dockerfile实践心得 191
- 4.4 Docker容器的监控手段 193
- 4.4.1 Docker容器监控维度 194
- 4.4.2 容器监控命令 195
- 4.4.3 常用的容器监控工具 197
- 4.5 容器化应用构建的基础:高可用配置中心 201
- 4.5.1 etcd经典应用场景 201
- 4.5.2 etcd实现原理 206
- 第二部分 Docker云平台解读
- 第5章 构建自己的容器云 222
- 5.1 再谈云平台的层次架构 222
- 5.2 从小工到专家 225
- 第6章 专注编排与部署:三剑客与Fleet 230
- 6.1 编排小神器Fig/Compose 230
- 6.1.1 再谈容器编排与部署 230
- 6.1.2 Compose原理:一探究竟 233
- 6.2 跨平台宿主环境管理工具Machine 237
- 6.2.1 Machine与虚拟机软件 237
- 6.2.2 Machine与IaaS平台 238
- 6.2.3 Machine小结 239
- 6.3 集群抽象工具Swarm 240
- 6.3.1 Swarm简介 240
- 6.3.2 试用Swarm 241
- 6.3.3 Swarm集群的多种创建方式 243
- 6.3.4 Swarm对请求的处理 245
- 6.3.5 Swarm集群的调度策略 245
- 6.3.6 Swarm集群高可用(HA) 246
- 6.3.7 Swarm与Machine 247
- 6.3.8 Swarm小结 248
- 6.4 编排之秀Fleet 248
- 6.4.1 旧问题新角度:Docker distro 249
- 6.4.2 Fleet的原理剖析 252
- 第7章 专注应用支撑和运行时:Flynn和Deis 258
- 7.1 Flynn,一个小而美的两层架构 258
- 7.1.1 第0层:容器云的基础设施 259
- 7.1.2 第1层:容器云的功能框架 259
- 7.1.3 Flynn体系架构与实现原理 260
- 7.2 谈谈Deis与Flynn 270
- 7.2.1 应用发布上的比较 271
- 7.2.2 关于Deis的一些思考 273
- 第8章 一切皆容器:Kubernetes 274
- 8.1 Kubernetes是个什么样的项目 274
- 8.2 Kubernetes的设计解读 275
- 8.2.1 一个典型案例:Guestbook 275
- 8.2.2 pod设计解读 277
- 8.2.3 replication controller设计解读 288
- 8.2.4 service的设计解读 294
- 8.2.5 新一代副本控制器replica set 306
- 8.2.6 Deployment 307
- 8.2.7 DaemonSet 312
- 8.2.8 ConfigMap 312
- 8.2.9 Job 317
- 8.2.10 Horizontal Pod Autoscaler 318
- 8.3 Kubernetes核心组件解读 320
- 8.3.1 Kubernetes的整体架构 320
- 8.3.2 APIServer 321
- 8.3.3 scheduler 328
- 8.3.4 controller manager 338
- 8.3.5 kubelet 346
- 8.3.6 kube-proxy 352
- 8.3.7 核心组件协作流程 362
- 8.4 Kubernetes存储核心原理 366
- 8.4.1 volume设计解读 366
- 8.4.2 volume实现原理分析 367
- 8.4.3 volume使用案例 368
- 8.4.4 persistent volume 371
- 8.5 Kubernetes网络核心原理 372
- 8.5.1 单pod单IP模型 373
- 8.5.2 pod和网络容器 374
- 8.5.3 实现Kubernetes的网络模型 377
- 8.6 Kubernetes多租户管理与资源控制 381
- 8.6.1 namespace设计解读 381
- 8.6.2 Kubernetes用户认证机制 385
- 8.6.3 Kubernetes用户授权机制 387
- 8.6.4 Kubernetes多维资源管理机制admission control 390
- 8.7 Kubernetes高级实践 402
- 8.7.1 应用健康检查 402
- 8.7.2 高可用性 405
- 8.7.3 日志 408
- 8.7.4 集成DNS 410
- 8.7.5 容器上下文环境 412
- 8.8 Kubernetes未来动向 414
- 8.8.1 Ubernetes 414
- 8.8.2 petSet 415
- 8.8.3 performance 417
- 8.8.4 rescheduler 417
- 8.8.5 OCI标准 419
- 8.9 不要停止思考 419
- 第三部分 附录
- 附录A Docker的安装 424
- 附录B 阅读Docker源代码的神兵利器 432
- 附录C 快速熟悉开源项目 441
- 附录D cgroups的测试与使用 444
- 附录E cgroups子系统配置参数介绍 448
- 附录F Kubernetes的安装 453
- 后记 457