Kubernetes修炼手册(第2版)

978-7-115-66233-0
作者: 奈吉尔·波尔顿(Nigel Poulton)
译者: 汪洋
编辑: 陈灿然

图书目录:

第 1章 初识Kubernetes 001

1.1 Kubernetes的背景 001

1.1.1 编排器 001

1.1.2 容器化应用 002

1.1.3 云原生应用 002

1.1.4 微服务应用 003

1.2 Kubernetes的诞生 004

1.2.1 Kubernetes和Docker 004

1.2.2 Kubernetes与Docker Swarm的对比 006

1.2.3 Kubernetes和Borg:抵抗是徒劳的 006

1.2.4 Kubernetes—名字从何而来 007

1.3 云操作系统 007

1.3.1 云的规模 008

1.3.2 应用的调度 008

1.3.3 一个简单的模拟 009

1.4 本章小结 009

第 2章 Kubernetes操作概览 010

2.1 Kubernetes概览 011

2.1.1 作为集群的Kubernetes 011

2.1.2 作为编排器的Kubernetes 011

2.1.3 Kubernetes是如何工作的 012

2.2 控制平面与工作节点 013

2.2.1 控制平面 013

2.2.2 工作节点 017

2.3 Kubernetes DNS 018

2.4 Kubernetes应用打包 019

2.5 声明式模型与期望状态 020

声明式示例 021

2.6 Pod 021

2.6.1 Pod与容器 022

2.6.2 Pod深度剖析 023

2.6.3 调度单元 024

2.6.4 原子操作 024

2.6.5 Pod的生命周期 024

2.6.6 Pod的不变性 025

2.7 Deployment 025

2.8 Service与稳定的网络 025

2.9 本章小结 027

第3章 安装Kubernetes 028

3.1 在笔记本计算机上创建Kubernetes集群 028

3.1.1 Docker Desktop 029

3.1.2 通过K3d创建本地多节点Kubernetes集群 030

3.1.3 通过KinD创建本地多节点Kubernetes集群 032

3.2 在云上创建托管的Kubernetes集群 034

3.2.1 GKE 034

3.2.2 LKE 036

3.3 安装和使用kubectl 038

3.4 本章小结 040

第4章 Pod的使用 041

4.1 Pod原理 042

4.1.1 为什么是Pod 042

4.1.2 静态Pod与控制器 046

4.1.3 单容器和多容器Pod 046

4.1.4 Pod的部署 047

4.1.5 剖析Pod 047

4.1.6 Pod与共享网络 047

4.1.7 Pod网络 048

4.1.8 Pod的原子部署 049

4.1.9 Pod的生命周期 049

4.1.10 Pod的不变性 050

4.1.11 Pod和扩缩容 051

4.2 多容器Pod 051

4.2.1 边车多容器Pod 052

4.2.2 适配器多容器Pod 052

4.2.3 大使多容器Pod 052

4.2.4 初始化多容器Pod 053

4.2.5 Pod原理总结 053

4.3 Pod实战 053

4.3.1 Pod清单文件 054

4.3.2 清单文件:共情即代码 055

4.3.3 基于清单文件部署Pod 056

4.3.4 查看运行中的Pod 056

4.3.5 Pod的主机名 060

4.3.6 检查Pod的不变性 061

4.3.7 多容器Pod示例—初始化容器 061

4.3.8 多容器Pod示例—边车容器 063

4.4 Pod清理 065

4.5 本章小结 066

第5章 虚拟集群与命名空间 067

5.1 命名空间的使用案例 068

5.2 查看命名空间 069

5.3 创建和管理命名空间 070

配置kubectl以使用特定命名空间 071

5.4 部署到命名空间 072

5.5 清理 074

5.6 本章小结 074

第6章 Kubernetes Deployment 075

6.1 Deployment原理 076

6.1.1 Deployment和Pod 077

6.1.2 Deployment和ReplicaSet 077

6.1.3 自愈和扩缩容 078

6.1.4 围绕“状态”的管理 079

6.1.5 使用Deployment进行滚动更新 081

6.1.6 回滚 083

6.2 创建Deployment 084

6.3 查看Deployment 086

访问应用 088

6.4 进行扩缩容 090

6.5 进行滚动更新 091

暂停和恢复滚动更新 094

6.6 进行回滚 096

回滚和标签 098

6.7 清理 099

6.8 本章小结 100

第7章 Kubernetes Service 101

7.1 Service原理 102

7.1.1 标签和松耦合 103

7.1.2 Service和EndpointSlice 105

7.1.3 双栈网络(IPv4和IPv6) 106

7.1.4 从集群内部访问Service 106

7.1.5 从集群外部访问Service 107

7.1.6 Service原理总结 109

7.2 Service实战 109

7.2.1 双栈网络入门 109

7.2.2 命令式方法 113

7.2.3 声明式方法 115

7.2.4 LoadBalancer Service 118

7.3 清理 119

7.4 本章小结 119

第8章 Ingress 120

8.1 Ingress背景 121

8.2 Ingress架构 122

8.3 Ingress实战 123

8.3.1 安装NGINX Ingress controller 124

8.3.2 为多Ingress controller集群配置Ingress class 125

8.3.3 配置基于主机名和基于路径的路由 126

8.3.4 部署应用 127

8.3.5 创建Ingress对象 127

8.3.6 查看Ingress对象 130

8.3.7 配置DNS名称解析 131

8.3.8 测试Ingress 132

8.4 清理 133

8.5 本章小结 134

第9章 深挖服务发现 135

9.1 快速入门 136

9.2 服务注册 136

9.2.1 Service后端 138

9.2.2 服务注册小结 140

9.3 服务发现 140

9.3.1 使用集群DNS将名称解析为IP地址 141

9.3.2 网络“黑科技” 142

9.3.3 服务发现小结 143

9.4 服务发现和命名空间 144

服务发现示例 145

9.5 服务发现问题排查 150

9.6 本章小结 153

第 10章 Kubernetes存储 154

10.1 概述 155

10.2 存储提供商 157

10.3 容器存储接口 157

10.4 Kubernetes持久卷子系统 158

10.5 使用存储类进行动态置备 159

10.5.1 存储类YAML 160

10.5.2 多个存储类 161

10.5.3 部署和使用StorageClass对象 162

10.5.4 额外的卷配置 163

10.6 实战 165

10.6.1 使用现有的存储类 165

10.6.2 创建和使用新的存储类 169

10.7 清理 171

10.8 本章小结 171

第 11章 ConfigMap和

Secret 172

11.1 概述 173

11.1.1 小例子 173

11.1.2 解耦的世界 174

11.2 ConfigMap原理 175

11.2.1 ConfigMap如何工作 176

11.2.2 ConfigMap和Kubernetes原生应用 177

11.3 ConfigMap实战 178

11.3.1 命令式创建ConfigMap 178

11.3.2 查看ConfigMap 179

11.3.3 声明式创建ConfigMap 180

11.3.4 将ConfigMap数据注入Pod和容器 182

11.4 Secret实战 189

11.4.1 Kubernetes Secret是否安全? 189

11.4.2 创建Secret 190

11.4.3 在Pod中使用Secret 192

11.5 清理 193

11.6 本章小结 193

第 12章 StatefulSet 194

12.1 StatefulSet原理 195

12.1.1 StatefulSet Pod命名 196

12.1.2 有序创建和删除 196

12.1.3 删除StatefulSet 198

12.1.4 StatefulSet和卷 198

12.1.5 故障处理 199

12.1.6 网络ID和headless Service 199

12.2 StatefulSet实战 200

12.2.1 部署存储类 201

12.2.2 创建headless Service 202

12.2.3 部署StatefulSet 203

12.2.4 测试对等发现 206

12.2.5 扩缩容StatefulSet 208

12.2.6 执行滚动更新 210

12.2.7 测试Pod故障 210

12.2.8 删除StatefulSet 212

12.3 本章小结 212

第 13章 API安全和RBAC 213

13.1 API安全概览 213

13.2 身份认证 214

检查当前身份认证设置 215

13.3 鉴权 216

13.3.1 RBAC概览 217

13.3.2 用户和权限 218

13.3.3 深入探讨规则 219

13.3.4 集群级别的用户和权限 221

13.3.5 预创建的用户和权限 222

13.3.6 鉴权总结 225

13.4 准入控制 225

13.5 本章小结 226

第 14章 Kubernetes API 227

14.1 Kubernetes API概览 228

14.1.1 JSON序列化 228

14.1.2 API类比 229

14.2 API Server 231

14.2.1 关于REST和RESTful 233

14.2.2 关于CRUD 235

14.3 API 237

14.3.1 核心API组 238

14.3.2 命名API组 239

14.3.3 关于访问API的一些话 241

14.3.4 alpha版、beta版和稳定版 243

14.3.5 资源弃用 245

14.3.6 资源、对象和原语 245

14.3.7 扩展API 246

14.4 本章小结 250

第 15章 Kubernetes威胁建模 252

15.1 威胁建模 252

15.2 伪装 253

15.2.1 保护与API Server的通信 253

15.2.2 确保Pod通信安全 254

15.3 篡改 255

15.3.1 篡改Kubernetes组件 256

15.3.2 篡改运行在Kubernetes上的应用 257

15.4 抵赖 257

15.5 信息泄露 259

15.5.1 保护集群数据 260

15.5.2 保护Pod中的数据 260

15.6 拒绝服务 261

15.6.1 保护集群资源免受DoS攻击 261

15.6.2 保护API Server免受DoS攻击 262

15.6.3 保护集群存储免受DoS攻击 263

15.6.4 保护应用组件免受DoS攻击 263

15.7 权限提升 264

15.7.1 保护API Server 264

15.7.2 保护Pod 265

15.7.3 使用PSS和PSA实现容器安全性标准化 270

15.7.4 PSS 271

15.7.5 PSA 271

15.7.6 PSA示例 272

15.7.7 PSA的替代方案 276

15.7.8 走向更安全的Kubernetes 276

15.8 本章小结 277

第 16章 真实世界的Kubernetes安全 278

16.1 CI/CD管道 279

16.1.1 镜像库 279

16.1.2 使用已批准的基本镜像 280

16.1.3 非标准基本镜像 281

16.1.4 控制对镜像的访问 281

16.1.5 将镜像从非生产环境移动到生产环境 282

16.1.6 漏洞扫描 282

16.1.7 配置即代码 283

16.1.8 签名容器镜像 284

16.1.9 镜像发布工作流 284

16.2 基础设施和网络 285

16.2.1 集群隔离 285

16.2.2 节点隔离 287

16.2.3 运行时隔离 288

16.2.4 网络隔离 289

16.3 IAM 292

管理对集群节点的远程SSH访问 293

16.4 审计和安全监控 293

16.4.1 安全配置 294

16.4.2 容器和Pod生命周期事件 294

16.4.3 应用日志 295

16.4.4 用户执行的操作 295

16.4.5 管理日志数据 295

16.4.6 将现有应用迁移到Kubernetes 295

16.5 真实世界的例子 296

16.6 本章小结 297

术语表 298

详情

本书是Kubernetes入门图书,共16章,全面介绍Kubernetes的基础知识,包括 Kubernetes架构、构建Kubernetes集群、在Kubernetes上部署和管理应用、Kubernetes安全,以及微服务、容器化等术语的含义,并附带大量的配置案例。本书内容充实、完善,可以帮助读者快速入门Kubernetes。 本书适合系统管理员、开发人员,以及对Kubernetes感兴趣的初学者阅读。

图书摘要

相关图书

DeepSeek原理与项目实战大模型部署、微调与应用开发
DeepSeek原理与项目实战大模型部署、微调与应用开发
AI辅助编程实战
AI辅助编程实战
大模型工程化:AI驱动下的数据体系
大模型工程化:AI驱动下的数据体系
软件工程3.0:大模型驱动的研发新范式
软件工程3.0:大模型驱动的研发新范式
软件开发中的决策:权衡与取舍
软件开发中的决策:权衡与取舍
大模型驱动的游戏开发
大模型驱动的游戏开发

相关文章

相关课程