Kubernetes设计模式

Kubernetes设计模式
作 者: 比尔金伊卜亚姆 罗兰胡贝塔
出版社: 中国电力出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  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