第 1部分 Kubernetes基础篇
第 1章 Kubernetes介绍 ......................................... 2
1.1为什么会有 Kubernetes ................................................. 2
1.1.1云计算大潮 . 2
1.1.2不温不火的 PaaS ............................................... 5
1.1.3 Docker的逆袭 .................................................... 5
1.2 Kubernetes 是什么 . 7
1.3 Kubernetes的发展历史 ................................................. 8
1.4 Kubernetes的核心概念 ................................................. 9
1.4.1 Pod ............... 9
1.4.2 Replication Controller ......................................... 9
1.4.3 Service ......... 9
1.4.4 Label ............ 9
1.4.5 Node ............. 9
第 2章 Kubernetes的架构和部署 ......................... 10
2.1 Kubernetes的架构和组件 ........................................... 10
2.2 部署 Kubernetes .... 13
2.2.1环境准备 ... 14
2.2.2 运行 Etcd ... 15
2.2.3 获取 Kubernetes发布包 .................................. 16
2.2.4 运行 Kubernetes Master组件 .......................... 16
2.2.5 运行 Kubernetes Node组件 ............................. 17
2.2.6 查询 Kubernetes的健康状态 .......................... 18
2.2.7 创建 Kubernetes覆盖网络 .............................. 19
2.3 安装 Kubernetes扩展插件 .......................................... 22
2.3.1 安装 Cluster DNS............................................. 23
2.3.2 安装 Cluster Monitoring ................................... 28
2.3.3 安装 Cluster Logging ....................................... 36
2.3.4 安装 Kube UI ................................................... 43
第 3章 Kubernetes快速入门 ................................ 46
3.1示例应用 Guestbook .................................................... 46
3.2准备工作 ............... 47
3.3 运行 Redis ............. 48
3.3.1 创建 Redis Master Pod ..................................... 48
3.3.2 创建 Redis Master Service ............................... 49
3.3.3 创建 Redis Slave Pod ....................................... 51
3.3.4 创建 Redis Slave Service ................................. 53
3.4 运行 Frontend ........ 54
3.4.1 创建 Frontend Pod ............................................ 54
3.4.2 创建 Frontend Service...................................... 57
3.5 设置 Guestbook外网访问 ........................................... 57
3.6 清理 Guestbook ..... 59
第 4章 Pod .... 60
4.1国际惯例的 Hello World .............................................. 60
4.2 Pod的基本操作 .... 62
4.2.1 创建 Pod .... 62
4.2.2 查询 Pod .... 62
4.2.3 删除 Pod .... 65
4.2.4 更新 Pod .... 65
4.3 Pod与容器 ............ 65
4.3.1 镜像 ........... 66
4.3.2启动命令 ... 69
4.3.3环境变量 ... 70
4.3.4 端口 ........... 72
4.3.5数据持久化和共享 .......................................... 73
4.4 Pod的网络 ............ 74
4.5 Pod的重启策略 .... 75
4.6 Pod的状态和生命周期 ............................................... 77
4.6.1容器状态 ... 77
4.6.2 Pod的生命周期阶段 ....................................... 78
4.6.3生命周期回调函数 .......................................... 79
4.7自定义检查 Pod .... 81
4.7.1 Pod的健康检查 ............................................... 83
4.7.2 Pod的准备状况检查 ....................................... 84
4.8 调度 Pod ................ 85
4.9问题定位指南 ....... 87
4.9.1事件查询 ... 88
4.9.2日志查询 ... 88
4.9.3 Pod的临终遗言 ............................................... 89
4.9.4远程连接容器 .................................................. 90
第 5章 Replication Controller................................ 92
5.1持续运行的 Pod .... 92
5.2 Pod模板 ................ 94
5.3 Replication Controller和 Pod的关联 .......................... 96
5.4弹性伸缩 ............... 99
5.5自动伸缩 ............. 101
5.6滚动升级 ............. 104
5.7 Deployment .......... 107
5.8一次性任务的 Pod ..................................................... 112
第 6章 Service .................................................... 114
6.1 Service代理 Pod . 114
6.2 Service的虚拟 IP 118
6.3服务代理 ............. 119
6.4服务发现 ............. 123
6.4.1环境变量 . 124
6.4.2 DNS ......... 125
6.5 发布 Service ........ 128
6.5.1 NodePort Service ............................................ 128
6.5.2 LoadBalancer Service..................................... 129
6.5.3 Ingress ...... 130
第 7章 数据卷 ..................................................... 134
7.1 Kubernetes数据卷 ..................................................... 134
7.2本地数据卷 ......... 135
7.2.1 EmptyDir . 135
7.2.2 HostPath ... 136
7.3网络数据卷 ......... 137
7.3.1 NFS .......... 137
7.3.2 iSCSI ........ 138
7.3.3 GlusterFS . 140
7.3.4 RBD(Ceph Block Device)......................... 141
7.3.5 Flocker ..... 142
7.3.6 AWS Elastic Block Store................................ 143
7.3.7 GCE Persistent Disk ....................................... 144
7.4 Persistent Volume和 Persistent Volume Claim.......... 145
7.4.1 创建 Persistent Volume ................................... 147
7.4.2 创建 Persistent Volume Claim ........................ 149
7.5信息数据卷 ......... 151
7.5.1 Secret ....... 151
7.5.2 Downward API ............................................... 153
7.5.3 Git Repo ... 155
第 8章 访问 Kubernetes API ............................... 157
8.1 API对象与元数据 ..................................................... 157
8.2如何访问 Kubernetes API.......................................... 159
8.3使用命令行工具 kubectl ............................................ 160
8.3.1 配置 Kubeconfig............................................. 161
8.3.2 Kubernetes操作 ............................................. 163
8.3.3 API对象操作 ................................................. 164
8.3.4 Pod操作 .. 168
8.3.5 Replication Controller操作 ............................ 169
8.3.6 Service操作 ................................................... 170
第 2部分 Kubernetes高级篇
第 9章 Kubernetes网络 ..................................... 172
9.1 Docker网络模型 . 172
9.2 Kubernetes网络模型 ................................................. 173
9.3容器间通信 ......... 174
9.4 Pod间通信 .......... 176
9.4.1 Flannel实现 Kubernetes覆盖网络 ............... 177
9.4.2 使用 Open vSwitch实现 Kubernetes覆盖网络 ................................................... 180
9.5 Service到 Pod通信 ................................................... 183
9.5.1 Userspace模式 ............................................... 184
9.5.2 Iptables模式 ................................................... 186
第 10章 Kubernetes安全 ................................... 189
10.1 Kubernetes安全原则 ............................................... 189
10.2 Kubernetes API的安全访问 .................................... 189
10.2.1 HTTPS . 190
10.2.2认证与授权 ................................................ 191
10.2.3 准入控制 Admission Controller................. 194
10.3 Service Account . 195
10.3.1 使用默认 Service Account ......................... 196
10.3.2创建自定义 Service Account ..................... 199
10.3.3 Service Account添加 Image Pull Secret .... 201
10.4容器安全 ........... 202
10.4.1 Linux Capability ......................................... 202
10.4.2 SELinux ...................................................... 204
10.5 多租户 ............... 204
第 11章 Kubernetes资源管理 ............................ 206
11.1 Kubernetes资源模型 ............................................... 206
11.2资源请求和限制 207
11.3 Limit Range ....... 210
11.4 Resource Quota.. 215
第 12章 管理和运维 Kubernetes ......................... 219
12.1 Daemon Pod ....... 219
12.1.1 Static Pod .................................................... 219
12.1.2 Daemon Set ................................................ 221
12.2 Kubernetes的高可用性 ........................................... 222
12.3平台监控 ........... 224
12.3.1 cAdvisor ..................................................... 224
12.3.2 Heapster ...................................................... 228
12.4平台日志 ........... 230
12.5垃圾清理 ........... 234
12.5.1 镜像清理 .................................................... 235
12.5.2 容器清理 .................................................... 235
12.6 Kubernetes的 Web界面 .......................................... 235
第 3部分 Kubernetes生态篇
第 13章 CoreOS ................................................. 240
13.1 CoreOS介绍 ..... 240
13.2 CoreOS工具链 . 241
13.2.1 Etcd ...... 241
13.2.2 Flannel . 241
13.2.3 Rocket .. 241
13.2.4 Systemd ...................................................... 241
13.2.5 Fleet ..... 241
13.3 CoreOS实践 ..... 242
13.3.1 安装 CoreOS .............................................. 242
13.3.2 使用 CoreOS运行 Kubernetes .................. 245
第 14章 Etcd 247
14.1 Etcd介绍 ........... 247
14.2 Etcd的结构 .............................................................. 248
14.2.1 Client-to-Server .......................................... 249
14.2.2 Peer-to-Peer ................................................ 250
14.3 Etcd实践 ........... 250
14.3.1 运行 Etcd .................................................... 250
14.3.2 Etcd集群化 ................................................ 251
14.3.3 Etcd Proxy模式 ......................................... 258
14.3.4 Etcd的安全模式 ........................................ 259
第 15章 Mesos ................................................... 262
15.1 Mesos介绍 ........ 262
15.2 Mesos的架构 .... 263
15.3 Marathon和 K8SM介绍 ......................................... 264
15.3.1 Marathon..................................................... 264
15.3.2 K8SM .. 265
15.4 Mesos实践 ........ 266
15.4.1 运行 Mesos ................................................. 266
15.4.2 运行 Marathon ............................................ 268
15.4.3 运行 K8SM ................................................ 270
· · · · · · (
收起)