Kubernetes设计模式(第二版)

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

作者简介

  Bilgin Ibryam是Diagrid的产品经理,负责公司的产品战略。Roland Hu?博士是红帽的高级首席软件工程师,OpenShift无服务器的架构师。

内容简介

本书主要内容包括:基本模式篇介绍构建以及运行基于容器的云原生应用程序的核心原则与实践。行为模式篇介绍各类容器和平台交互的管理。结构化模式篇介绍通过组织容器解决特定的用例。配置模式篇介绍如何处理Kubernetes中应用程序的配置。安全模式篇介绍如何提高运行在Kubernetes之上的应用程序的安全性。高级模式篇涵盖更复杂的主题,例如操作器、自动伸缩以及集群内镜像构建等。

图书目录

目录

序 1

前言 3

第1 章 概述 15

1.1 云原生之路 15

1.2 分布式原语 17

1.2.1 容器 19

1.2.2 Pod .20

1.2.3 服务 21

1.2.4 标签 22

1.2.5 命名空间 .24

1.3 讨论 .26

1.4 参考资料27

第一篇 基础模式

第2 章 可预测的需求 31

2.1 问题 .31

2.2 解决方案31

2.2.1 运行时依赖 32

2.2.2 资源配置文件 34

2.2.3 Pod 优先级 .37

2.2.4 项目资源 .40

2.2.5 容量规划 .42

2.3 讨论 .43

2.4 参考资料44

第3 章 声明式部署 45

3.1 问题 .45

3.2 解决方案45

3.2.1 滚动部署 .47

3.2.2 固定部署 .50

3.2.3 蓝绿发布 .51

3.2.4 金丝雀发布 52

3.3 讨论 .52

3.4 参考资料55

第4 章 健康检测 57

4.1 问题 .57

4.2 解决方案57

4.2.1 进程健康检查 58

4.2.2 存活探针 .58

4.2.3 就绪探针 .60

4.2.4 启动探针 .62

4.3 讨论 .64

4.4 参考资料65

第5 章 生命周期管理 67

5.1 问题 .67

5.2 解决方案67

5.2.1 SIGTERM 信号 68

5.2.2 SIGKILL 信号 68

5.2.3 Poststart 钩子 69

5.2.4 Prestop 钩子 70

5.2.5 其他生命周期控制 .71

5.3 讨论 .75

5.4 参考资料75

第6 章 自动放置 77

6.1 问题 .77

6.2 解决方案77

6.2.1 可利用的节点资源 .78

6.2.2 容器资源需求 79

6.2.3 调度器配置 79

6.2.4 调度的过程 80

6.2.5 节点亲和性 82

6.2.6 Pod 亲和性和反亲和性 83

6.2.7 拓扑分布约束 85

6.2.8 污点和容忍 86

6.3 讨论 .90

6.4 参考资料93

第二篇 行为模式

第7 章 批处理作业 97

7.1 问题 .97

7.2 解决方案98

7.3 讨论 104

7.4 参考资料.104

第8 章 定期作业 . 107

8.1 问题 107

8.2 解决方案.108

8.3 讨论 110

8.4 参考资料. 110

第9 章 守护进程服务 .111

9.1 问题 111

9.2 解决方案. 112

9.3 讨论 115

9.4 参考资料. 116

第10 章 单例服务 117

10.1 问题 117

10.2 解决方案 118

10.2.1 应用程序外锁定 . 118

10.2.2 应用程序内锁定 .120

10.2.3 Pod 中断预算 123

10.3 讨论 124

10.4 参考资料 125

第11 章 无状态服务 127

11.1 问题 127

11.2 解决方案 128

11.2.1 实例 128

11.2.2 网络 130

11.2.3 存储 131

11.3 讨论 133

11.4 参考资料 135

第12 章 有状态服务 . 137

12.1 问题 137

12.1.1 存储 138

12.1.2 网络 139

12.1.3 标识 139

12.1.4 序数 139

12.1.5 其他需求 140

12.2 解决方案 140

12.2.1 存储 142

12.2.2 网络 142

12.2.3 标识 145

12.2.4 序数 145

12.2.5 其他特性 145

12.3 讨论 147

12.4 参考资料 148

第13 章 服务发现 149

13.1 问题 149

13.2 解决方案 150

13.2.1 内部服务发现 151

13.2.2 手动发现服务 155

13.2.3 集群外部的服务发现 157

13.2.4 应用层服务发现 161

13.3 讨论 164

13.4 参考资料 165

第14 章 自我认知 167

14.1 问题 167

14.2 解决方案 168

14.3 讨论 171

14.4 参考资料 172

第三篇 结构化模式

第15 章 初始化容器 . 175

15.1 问题 175

15.2 解决方案 176

15.3 讨论 181

15.4 参考资料 181

第16 章 边车 183

16.1 问题 183

16.2 解决方案 184

16.3 讨论 186

16.4 参考资料 187

第17 章 适配器 189

17.1 问题 189

17.2 解决方案 189

17.3 讨论 192

17.4 参考资料 192

第18 章 外交官 193

18.1 问题 193

18.2 解决方案 193

18.3 讨论 195

18.4 参考资料 196

第四篇 配置模式

第19 章 环境变量配置 . 199

19.1 问题 199

19.2 解决方案 199

19.3 讨论 204

19.4 参考资料 205

第20 章 配置资源 207

20.1 问题 207

20.2 解决方案 207

20.3 讨论 214

20.4 参考资料 214

第21 章 不可变配置 . 215

21.1 问题 215

21.2 解决方案 216

21.2.1 Docker 卷 216

21.2.2 Kubernetes 初始化容器 218

21.2.3 OpenShift 模板 221

21.3 讨论 222

21.4 参考资料 223

第22 章 配置模板 225

22.1 问题 225

22.2 解决方案 225

22.3 讨论 231

22.4 参考资料 231

第五篇 安全模式

第23 章 进程约束 235

23.1 问题 235

23.2 解决方案 236

23.2.1 通过非root 用户运行容器 .236

23.2.2 限制容器能力 238

23.2.3 避免可变的容器文件系统 .239

23.2.4 强制执行的安全策略 240

23.3 讨论 242

23.4 参考资料 243

第24 章 网络分段 245

24.1 问题 245

24.2 解决方案 246

24.2.1 网络策略 247

24.2.2 身份验证策略 256

24.3 讨论 260

24.4 参考资料 260

第25 章 安全配置 263

25.1 问题 263

25.2 解决方案 264

25.2.1 集群外加密265

25.2.2 集中式机密管理 .274

25.3 讨论 279

25.4 参考资料 280

第26 章 访问控制 281

26.1 问题 281

26.2 解决方案 282

26.2.1 认证 283

26.2.2 授权 284

26.2.3 准入控制器285

26.2.4 主体 285

26.2.5 基于角色的访问控制 293

26.3 讨论 305

26.4 参考资料 307

第六篇 高级模式

第27 章 控制器 311

27.1 问题 311

27.2 解决方案 312

27.3 讨论 324

27.4 参考资料 325

第28 章 操作器 327

28.1 问题 327

28.2 解决方案 328

28.2.1 自定义资源定义 .328

28.2.2 控制器和操作器的分类 331

28.2.3 操作器的开发与部署 334

28.2.4 示例 338

28.3 讨论 342

28.4 参考资料 343

第29 章 弹性伸缩 . 345

29.1 问题 345

29.2 解决方案 346

29.2.1 手动水平伸缩 346

29.2.2 Pod 水平自动伸缩 .347

29.2.3 Pod 垂直自动伸缩 .362

29.2.4 集群自动伸缩 366

29.2.5 伸缩级别 369

29.3 讨论 371

29.4 参考资料 372

第30 章 镜像构建 375

30.1 问题 375

30.2 解决方案 376

30.2.1 容器镜像构建器 .377

30.2.2 构建编排器382

30.2.3 构建Pod .383

30.2.4 OpenShift 构建 388

30.3 讨论 396

30.4 参考资料 396

后记 . 399