1 DevOps简介 1
软件交付的挑战 1
瀑布模型和实物交付 1
敏捷模型和电子交付 2
云端的软件交付 2
持续集成 3
持续交付 3
配置管理 4
基础设施即代码 4
编排 5
微服务趋势 5
模块化编程 6
包管理 6
MVC设计模型 8
单体架构应用程序 9
远程过程调用 9
RESTful设计 10
微服务 11
自动化工具 12
持续集成工具 12
持续交付工具 13
监控和日志工具 16
沟通工具 18
公有云 19
总结 21
2 DevOps与容器 22
了解容器 22
资源隔离 22
Linux容器概念 23
容器交付 27
容器入门 27
在Ubuntu上安装Docker 28
在CentOS上安装Docker 28
在macOS上安装Docker 29
容器生命周期 29
Docker基础 29
层、镜像、容器和卷 31
分发镜像 33
连接容器 35
使用Dockerfile 37
编写第一个Dockerfile 37
Dockerfile语法 39
组织Dockerfile 43
多容器编排 45
容器堆积 45
Docker Compose概述 46
组合容器 47
总结 50
3 Kubernetes入门 51
理解Kubernetes 51
Kubernetes组件 52
Master组件 52
节点组件 53
Master与节点通信 54
开始使用Kubernetes 54
准备环境 55
kubectl 57
Kubernetes资源 58
Kubernetes对象 58
容器编排 95
总结 103
4 存储与资源管理 104
Kubernetes卷管理 104
容器卷生命周期 104
Pod内共享卷 106
无状态和有状态应用程序 106
Kubernetes持久卷和动态配置 108
持久卷抽象层声明 109
动态配置和存储类型 111
临时存储和永久存储配置案例 113
使用状态集(StatefulSet)管理具有持久卷的Pod 116
持久卷示例 118
Elasticsearch集群 118
Kubernetes资源管理 122
资源服务质量(QoS) 122
配置BestEffort Pod 125
配置Guaranteed Pod 127
配置Burstable Pod 128
资源使用监控 130
总结 132
5 网络与安全 133
Kubernetes网络 133
Docker网络 133
容器间通信 136
Pod间通信 138
同一节点内Pod间通信 138
跨节点Pod间通信 139
Pod与服务间通信 141
外部与服务通信 144
Ingress 145
网络策略 150
总结 153
6 监控与日志 154
容器检查 154
Kubernetes仪表盘 155
监控Kubernetes 156
应用程序 156
主机 157
外部资源 157
容器 158
Kubernetes 158
Kubernetes监控要点 159
监控实践 161
Prometheus介绍 161
部署Prometheus 162
使用PromQL 162
Kubernetes目标发现 163
从Kubernetes收集数据 165
使用Grafana查看指标 166
日志 167
日志聚合模式 168
节点代理方式收集日志 168
Sidecar容器方式转发日志 169
获取Kubernetes事件 170
Fluentd和Elasticsearch日志 171
从日志中提取指标 172
总结 173
7 持续交付 174
资源更新 174
触发更新 174
管理滚动更新 176
更新DaemonSet和StatefulSet 178
DaemonSet 178
StatefulSet 179
构建交付管道 180
工具选择 180
过程解析 181
深入解析Pod 185
启动Pod 186
Liveness和Readiness探针 186
初始化容器 188
终止Pod 189
处理SIGTERM 189
容器生命周期钩子 192
放置Pod 193
总结 194
8 集群管理 196
Kubernetes命名空间 196
默认命名空间 197
创建命名空间 197
上下文 198
资源配额 199
创建资源配额 200
请求具有默认计算资源限制的Pod 202
删除命名空间 203
Kubeconfig 204
服务账户 205
认证与授权 206
认证 207
服务账户认证 207
用户账户认证 207
授权 209
基于属性的访问控制(ABAC) 209
基于角色的访问控制(RBAC) 210
角色和集群角色 210
角色绑定和集群角色绑定 212
准入控制 213
命名空间生命周期 214
范围限制 214
服务账户 214
持久卷标签 214
默认存储类型 214
资源配额 214
默认容忍时间 215
污点和容忍 215
Pod节点选择器(PodNodeSelector) 216
始终准许(AlwaysAdmit) 216
始终拉取镜像(AlwaysPullImages) 217
始终拒绝(AlwaysDeny) 217
拒绝升级执行(DenyEscalatingExec) 217
其他准入插件 217
总结 217
9 AWS上的Kubernetes 218
AWS简介 218
公有云 219
API和基础设施即代码 219
AWS组件 220
VPC和子网 220
互联网网关和NAT-GW 222
安全组 226
EC2和EBS 227
Route 53 232
ELB 234
S3 236
在AWS上安装和配置Kubernetes 237
安装kops 238
运行kops 238
Kubernetes云提供商 240
L4负载均衡 240
L7负载均衡(Ingress) 242
存储类型(StorageClass) 245
通过kops维护Kubernetes集群 246
总结 248
10 GCP上的Kubernetes 249
GCP简介 249
GCP组件 250
VPC 250
子网 251
防火墙规则 252
VM实例 253
负载均衡 257
持久化磁盘 262
Google容器引擎(GKE) 264
在GKE上设置第一个Kubernetes集群 265
节点池 267
多区域集群 270
集群升级 271
Kubernetes云提供商 273
存储类型(StorageClass) 273
L4负载均衡 275
L7负载均衡(Ingress) 276
总结 280
11 未来探究 281
探索Kubernetes的可能性 281
掌握Kubernetes 281
Job和CronJob 282
Pod和节点之间的亲和性与反亲和性 282
Pod的自动伸缩 282
防止和缓解Pod中断 282
Kubernetes集群联邦(federation) 283
集群附加组件 283
Kubernetes和社区 284
Kubernetes孵化器 284
Helm和chart 285
未来基础设施 287
Docker Swarm模式 287
Amazon Elastic Container Service 288
Apache Mesos 289
总结 290
读者调查表 291
电子工业出版社编著书籍推荐表 293
反侵权盗版声明 294