Kubernetes设计模式
目录
序 .1
前言 .3
第1 章 引言 13
1.1 云原生之路 . 13
1.2 分布式原语 . 15
1.2.1 容器 17
1.2.2 Pod. 18
1.2.3 服务 20
1.2.4 标签 20
查看完整
序 .1
前言 .3
第1 章 引言 13
1.1 云原生之路 . 13
1.2 分布式原语 . 15
1.2.1 容器 17
1.2.2 Pod. 18
1.2.3 服务 20
1.2.4 标签 20
查看完整
Bilgin Ibryam(@bibryam)是红帽的首席架构师,阿帕奇软件基金会的成员,他曾向多个开源项目贡献代码。
RolandHuß(@ro14nd)是红帽的首席软件工程师,也是Knative无服务器团队的成员。
本书介绍了以下模式类型:
基础模式涵盖构建基于容器的云原生应用程序的核心原则和实践。
行为模式详细介绍管理容器和平台交互的概念。
结构化模式教你如何通过在Pod中组织容器解决特定的用例。
配置模式讲述如何处理Kubernetes中应用程序的配置。
高级模式涵盖更复杂的主题,例如操作器和自动伸缩等。
目录
序 .1
前言 .3
第1 章 引言 13
1.1 云原生之路 . 13
1.2 分布式原语 . 15
1.2.1 容器 17
1.2.2 Pod. 18
1.2.3 服务 20
1.2.4 标签 20
1.2.5 注释 22
1.2.6 命名空间. 22
1.3 讨论 24
1.4 参考资料 25
第一部分 基础模式
第2 章 可预测的需求 .29
2.1 问题 29
2.2 解决方案 30
2.2.1 运行时依赖 30
2.2.2 资源配置文件 33
2.2.3 Pod 优先级 34
2.2.4 项目资源. 37
2.2.5 容量规划. 38
2.3 讨论 39
2.4 参考资料 39
第3 章 声明式部署 .41
3.1 问题 41
3.2 解决方案 42
3.2.1 滚动部署. 43
3.2.2 固定部署. 46
3.2.3 蓝绿发布. 46
3.2.4 金丝雀发布 48
3.3 讨论 48
3.4 参考资料 50
第4 章 健康检测 51
4.1 问题 51
4.2 解决方案 52
4.2.1 进程健康检查 52
4.2.2 存活探针. 52
4.2.3 就绪探针. 54
4.3 讨论 55
4.4 参考资料 56
第5 章 生命周期管理 .59
5.1 问题 59
5.2 解决方案 60
5.2.1 SIGTERM 信号 60
5.2.2 SIGKILL 信号 . 61
5.2.3 postStart 钩子 61
5.2.4 preStop 钩子 . 62
5.2.5 其他生命周期控制 . 63
5.3 讨论 64
5.4 参考资料 65
第6 章 自动放置 67
6.1 问题 67
6.2 解决方案 68
6.2.1 可利用的节点资源 . 68
6.2.2 容器资源需求 69
6.2.3 放置策略. 69
6.2.4 调度的过程 70
6.2.5 节点亲和性 72
6.2.6 Pod 亲和性和反亲和性 73
6.2.7 污点和容忍 75
6.3 讨论 79
6.4 参考资料 81
第二部分 行为模式
第7 章 批处理作业 .85
7.1 问题 85
7.2 解决方案 86
7.3 讨论 89
7.4 参考资料 90
第8 章 定期作业 91
8.1 问题 91
8.2 解决方案 92
8.3 讨论 94
8.4 参考资料 94
第9 章 守护进程服务 .95
9.1 问题 95
9.2 解决方案 96
9.3 讨论 99
9.4 参考资料 99
第10 章 单例服务 . 101
10.1 问题 101
10.2 解决方案 . 102
10.2.1 应用程序外锁定 102
10.2.2 应用程序内锁定 105
10.2.3 Pod 中断预算 107
10.3 讨论 108
10.4 参考资料 . 108
第11 章 有状态服务 . 111
11.1 问题 111
11.1.1 存储 . 112
11.1.2 网络 . 113
11.1.3 标识 . 113
11.1.4 序数 . 114
11.1.5 其他需求 114
11.2 解决方案 . 114
11.2.1 存储 . 116
11.2.2 网络 . 117
11.2.3 标识 . 119
11.2.4 序数 . 119
11.2.5 其他特性 120
11.3 讨论 122
11.4 参考资料 . 123
第12 章 服务发现 . 125
12.1 问题 125
12.2 解决方案 . 126
12.2.1 内部服务发现 . 127
12.2.2 手动服务发现 . 131
12.2.3 集群外部的服务发现 134
12.2.4 应用层服务发现 138
12.3 讨论 141
12.4 参考资料 . 142
第13 章 自我意识 . 145
13.1 问题 145
13.2 解决方案 . 146
13.3 讨论 149
13.4 参考资料 . 149
第三部分 结构化模式
第14 章 初始化容器 153
14.1 问题 153
14.2 解决方案 . 154
14.3 讨论 159
14.4 参考资料 . 159
第15 章 Sidecar 161
15.1 问题 161
15.2 解决方案 . 162
15.3 讨论 164
15.4 参考资料 . 165
第16 章 适配器 . 167
16.1 问题 167
16.2 解决方案 . 167
16.3 讨论 170
16.4 参考资料 . 171
第17 章 外交官 . 173
17.1 问题 173
17.2 解决方案 . 174
17.3 讨论 176
17.4 参考资料 . 176
第四部分 配置模式
第18 章 环境变量配置 179
18.1 问题 179
18.2 解决方案 . 179
18.3 讨论 183
18.4 参考资料 . 184
第19 章 配置资源 . 185
19.1 问题 185
19.2 解决方案 . 185
19.3 讨论 190
19.4 参考资料 . 191
第20 章 不可变配置 193
20.1 问题 193
20.2 解决方案 . 193
20.2.1 Docker 卷 194
20.2.2 Kubernetes 初始化容器 195
20.2.3 OpenShift 模板 198
20.3 讨论 199
20.4 参考资料 . 200
第21 章 配置模板 . 203
21.1 问题 203
21.2 解决方案 . 204
21.3 讨论 209
21.4 参考资料 . 210
第五部分 高级模式
第22 章 控制器 . 213
22.1 问题 213
22.2 解决方案 . 214
22.3 讨论 226
22.4 参考资料 . 226
第23 章 操作器 . 229
23.1 问题 229
23.2 解决方案 . 230
23.2.1 自定义资源定义 230
23.2.2 控制器和操作器的分类 . 233
23.2.3 操作器的开发与部署 236
23.2.4 示例 . 239
23.3 讨论 243
23.4 参考资料 . 244
第24 章 弹性伸缩 . 247
24.1 问题 247
24.2 解决方案 . 248
24.2.1 手动水平伸缩 . 248
24.2.2 Pod 水平自动伸缩 250
24.2.3 Pod 垂直自动伸缩 255
24.2.4 集群自动伸缩 . 259
24.2.5 伸缩级别 262
24.3 讨论 264
24.4 参考资料 . 265
第25 章 镜像构建 . 267
25.1 问题 267
25.2 解决方案 . 269
25.2.1 OpenShift Build . 269
25.2.2 Knative Build 277
25.3 讨论 282
25.4 参考资料 . 283
后记 285
作者介绍 287
封面介绍 287
^ 收 起
序 .1
前言 .3
第1 章 引言 13
1.1 云原生之路 . 13
1.2 分布式原语 . 15
1.2.1 容器 17
1.2.2 Pod. 18
1.2.3 服务 20
1.2.4 标签 20
1.2.5 注释 22
1.2.6 命名空间. 22
1.3 讨论 24
1.4 参考资料 25
第一部分 基础模式
第2 章 可预测的需求 .29
2.1 问题 29
2.2 解决方案 30
2.2.1 运行时依赖 30
2.2.2 资源配置文件 33
2.2.3 Pod 优先级 34
2.2.4 项目资源. 37
2.2.5 容量规划. 38
2.3 讨论 39
2.4 参考资料 39
第3 章 声明式部署 .41
3.1 问题 41
3.2 解决方案 42
3.2.1 滚动部署. 43
3.2.2 固定部署. 46
3.2.3 蓝绿发布. 46
3.2.4 金丝雀发布 48
3.3 讨论 48
3.4 参考资料 50
第4 章 健康检测 51
4.1 问题 51
4.2 解决方案 52
4.2.1 进程健康检查 52
4.2.2 存活探针. 52
4.2.3 就绪探针. 54
4.3 讨论 55
4.4 参考资料 56
第5 章 生命周期管理 .59
5.1 问题 59
5.2 解决方案 60
5.2.1 SIGTERM 信号 60
5.2.2 SIGKILL 信号 . 61
5.2.3 postStart 钩子 61
5.2.4 preStop 钩子 . 62
5.2.5 其他生命周期控制 . 63
5.3 讨论 64
5.4 参考资料 65
第6 章 自动放置 67
6.1 问题 67
6.2 解决方案 68
6.2.1 可利用的节点资源 . 68
6.2.2 容器资源需求 69
6.2.3 放置策略. 69
6.2.4 调度的过程 70
6.2.5 节点亲和性 72
6.2.6 Pod 亲和性和反亲和性 73
6.2.7 污点和容忍 75
6.3 讨论 79
6.4 参考资料 81
第二部分 行为模式
第7 章 批处理作业 .85
7.1 问题 85
7.2 解决方案 86
7.3 讨论 89
7.4 参考资料 90
第8 章 定期作业 91
8.1 问题 91
8.2 解决方案 92
8.3 讨论 94
8.4 参考资料 94
第9 章 守护进程服务 .95
9.1 问题 95
9.2 解决方案 96
9.3 讨论 99
9.4 参考资料 99
第10 章 单例服务 . 101
10.1 问题 101
10.2 解决方案 . 102
10.2.1 应用程序外锁定 102
10.2.2 应用程序内锁定 105
10.2.3 Pod 中断预算 107
10.3 讨论 108
10.4 参考资料 . 108
第11 章 有状态服务 . 111
11.1 问题 111
11.1.1 存储 . 112
11.1.2 网络 . 113
11.1.3 标识 . 113
11.1.4 序数 . 114
11.1.5 其他需求 114
11.2 解决方案 . 114
11.2.1 存储 . 116
11.2.2 网络 . 117
11.2.3 标识 . 119
11.2.4 序数 . 119
11.2.5 其他特性 120
11.3 讨论 122
11.4 参考资料 . 123
第12 章 服务发现 . 125
12.1 问题 125
12.2 解决方案 . 126
12.2.1 内部服务发现 . 127
12.2.2 手动服务发现 . 131
12.2.3 集群外部的服务发现 134
12.2.4 应用层服务发现 138
12.3 讨论 141
12.4 参考资料 . 142
第13 章 自我意识 . 145
13.1 问题 145
13.2 解决方案 . 146
13.3 讨论 149
13.4 参考资料 . 149
第三部分 结构化模式
第14 章 初始化容器 153
14.1 问题 153
14.2 解决方案 . 154
14.3 讨论 159
14.4 参考资料 . 159
第15 章 Sidecar 161
15.1 问题 161
15.2 解决方案 . 162
15.3 讨论 164
15.4 参考资料 . 165
第16 章 适配器 . 167
16.1 问题 167
16.2 解决方案 . 167
16.3 讨论 170
16.4 参考资料 . 171
第17 章 外交官 . 173
17.1 问题 173
17.2 解决方案 . 174
17.3 讨论 176
17.4 参考资料 . 176
第四部分 配置模式
第18 章 环境变量配置 179
18.1 问题 179
18.2 解决方案 . 179
18.3 讨论 183
18.4 参考资料 . 184
第19 章 配置资源 . 185
19.1 问题 185
19.2 解决方案 . 185
19.3 讨论 190
19.4 参考资料 . 191
第20 章 不可变配置 193
20.1 问题 193
20.2 解决方案 . 193
20.2.1 Docker 卷 194
20.2.2 Kubernetes 初始化容器 195
20.2.3 OpenShift 模板 198
20.3 讨论 199
20.4 参考资料 . 200
第21 章 配置模板 . 203
21.1 问题 203
21.2 解决方案 . 204
21.3 讨论 209
21.4 参考资料 . 210
第五部分 高级模式
第22 章 控制器 . 213
22.1 问题 213
22.2 解决方案 . 214
22.3 讨论 226
22.4 参考资料 . 226
第23 章 操作器 . 229
23.1 问题 229
23.2 解决方案 . 230
23.2.1 自定义资源定义 230
23.2.2 控制器和操作器的分类 . 233
23.2.3 操作器的开发与部署 236
23.2.4 示例 . 239
23.3 讨论 243
23.4 参考资料 . 244
第24 章 弹性伸缩 . 247
24.1 问题 247
24.2 解决方案 . 248
24.2.1 手动水平伸缩 . 248
24.2.2 Pod 水平自动伸缩 250
24.2.3 Pod 垂直自动伸缩 255
24.2.4 集群自动伸缩 . 259
24.2.5 伸缩级别 262
24.3 讨论 264
24.4 参考资料 . 265
第25 章 镜像构建 . 267
25.1 问题 267
25.2 解决方案 . 269
25.2.1 OpenShift Build . 269
25.2.2 Knative Build 277
25.3 讨论 282
25.4 参考资料 . 283
后记 285
作者介绍 287
封面介绍 287
^ 收 起
Bilgin Ibryam(@bibryam)是红帽的首席架构师,阿帕奇软件基金会的成员,他曾向多个开源项目贡献代码。
RolandHuß(@ro14nd)是红帽的首席软件工程师,也是Knative无服务器团队的成员。
本书介绍了以下模式类型:
基础模式涵盖构建基于容器的云原生应用程序的核心原则和实践。
行为模式详细介绍管理容器和平台交互的概念。
结构化模式教你如何通过在Pod中组织容器解决特定的用例。
配置模式讲述如何处理Kubernetes中应用程序的配置。
高级模式涵盖更复杂的主题,例如操作器和自动伸缩等。
比价列表
1人想要
公众号、微信群
缺书网
微信公众号
微信公众号
扫码进群
实时获取购书优惠
实时获取购书优惠