描述
开 本: 128开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121479274
1、第6版基于Kubernetes 1.29版本进行全面的内容升级,内容几乎全部更新
2、第6版内容更新完毕,因太厚(近1300页)而拆分,拆分为上下两册,此为上册。
2、目录细致,便于检索,用作K8s容器工具书也很趁手。
3、提供源码下载和读者交流群,可与万千本书读者交流学习、工作心得
4、CNCF、神州数码、用友、德勤、VMware、华为等众咖力荐!
5、从云原生到多模态大模型架构转型上佳参考读物。
本书是《Kubernetes权威指南:从Docker到Kubernetes实践全接触》(第6版)的上册,总计9章,涵盖了Kubernetes v1.29及之前版本的主要特性。第1章首先从一个简单的示例开始,让读者通过动手实践初步感受Kubernetes的强大;然后讲解Kubernetes的概念、术语。考虑到Kubernetes的概念、术语繁多,所以从它们的用途及相互关系入手来进行讲解,以期初学者能快速、准确、全面、深刻地理解这部分内容。第2章围绕Kubernetes的安装和配置进行讲解。如果要在生产级应用中部署Kubernetes,则建议读者将本章内容全部实践战一遍,否则可以选择其中部分内容进行实践。其中比较重要的是Kubernetes的命令行部分,对这部分操作得越熟练,后面进行研发或运维就越轻松。第3章全面、深入地讲解了Pod的方方面面,其中非常有挑战性的是Pod调度部分的内容,这也是生产实践中相当实用的知识和技能。第4章围绕Pod工作负载进行讲解,这些工作负载分别实现了无状态服务、有状态服务和批处理任务的不同需求。第5章围绕Service进行深入讲解,涉及服务发现、DNS、IPv6及Ingress等高级特性。第6、7章全面、深入地讲解Kubernetes的运行机制和原理,涉及API Server、Controller、Scheduler、kubelet、kube-proxy等几个核心组件的作用、原理和实现方式等,可以让读者加深对Kubernetes的整体认知,使其在遇到问题时能更快地找到解决方案。第8、9章主要讲解Kubernetes运维方面的技能和知识,涉及集群多租户模式下的资源管理方案、Pod的QoS管理、基于NUMA资源亲和性的资源分配管理、Pod调度、故障排查等。
第1章 Kubernetes入门 1
1.1 了解Kubernetes 2
1.2 了解Kubernetes中的资源对象 3
1.3 了解Kubernetes集群 5
1.3.1 Master 5
1.3.2 Node 5
1.4 了解Kubernetes应用 11
1.4.1 Service与Pod 11
1.4.2 Label与Label Selector 15
1.4.3 Pod与Deployment 18
1.4.4 Service的ClusterIP地址 21
1.4.5 Service的外网访问问题 24
1.4.6 有状态应用集群 28
1.4.7 批处理应用 29
1.4.8 应用的配置问题 31
1.4.9 应用自动化运维相关的重要对象 32
1.5 了解Kubernetes存储 33
1.5.1 emptyDir 34
1.5.2 hostPath 35
1.5.3 公有云Volume 35
1.5.4 其他类型的Volume 36
1.5.5 动态存储管理 36
1.6 了解Kubernetes安全 38
1.7 从一个简单的示例开始 40
1.7.1 环境准备 41
1.7.2 启动MySQL服务 41
1.7.3 启动Tomcat应用 44
1.7.4 通过浏览器访问网页 46
第2章 Kubernetes安装和配置指南 48
2.1 系统要求 49
2.2 通过kubeadm快速安装Kubernetes集群 50
2.2.1 安装kubeadm、kubelet和kubectl 50
2.2.2 修改kubeadm的默认配置 51
2.2.3 下载Kubernetes相关镜像 53
2.2.4 通过kubeadm init命令安装Master 53
2.2.5 将新的Node加入集群 58
2.2.6 安装CNI网络插件 60
2.2.7 验证Kubernetes集群是否正常工作 62
2.3 通过二进制文件安装Kubernetes集群 63
2.3.1 Master的高可用部署架构 63
2.3.2 创建CA根证书 64
2.3.3 部署安全的etcd高可用集群 65
2.3.4 部署安全的Kubernetes Master高可用集群 70
2.3.5 部署各个Node的服务 87
2.4 Kubernetes集群的版本更新 91
2.4.1 以二进制方式部署的Kubernetes集群的版本更新 91
2.4.2 以kubeadm方式部署的Kubernetes集群的版本更新 91
2.5 CRI详解 94
2.5.1 CRI概述 94
2.5.2 CRI的主要组件 94
2.5.3 Pod和容器的生命周期管理 95
2.5.4 面向容器级别的设计思路 96
2.6 kubectl用法详解 97
2.6.1 kubectl用法概述 97
2.6.2 kubectl子命令详解 98
2.6.3 kubectl可操作的资源对象详解 101
2.6.4 kubectl的公共参数说明 103
2.6.5 kubectl格式化输出 105
2.6.6 kubectl的日志输出级别 106
2.6.7 常见的kubectl操作示例 107
第3章 深入掌握Pod 112
3.1 Pod定义详解 113
3.2 Pod的基本用法 118
3.3 静态Pod 124
3.4 Pod容器共享Volume 126
3.5 Pod的配置管理 128
3.5.1 ConfigMap概述 128
3.5.2 创建ConfigMap 129
3.5.3 在Pod中使用ConfigMap 144
3.5.4 ConfigMap的可选设置 151
3.5.5 使用ConfigMap时的限制条件 153
3.6 在容器内获取Pod信息(Downward API) 153
3.6.1 环境变量方式 154
3.6.2 Volume挂载方式 158
3.6.3 Downward API支持设置的Pod和Container信息 162
3.7 Pod的生命周期管理 164
3.7.1 Pod的阶段(Phase) 164
3.7.2 Pod的状况(Condition) 165
3.7.3 容器的状态(State) 170
3.7.4 Pod的重启策略(RestartPolicy) 170
3.7.5 Pod的终止和垃圾清理 171
3.8 容器的探针和健康检查机制 173
3.9 初始化容器(Init Container) 181
3.9.1 初始化容器概述 181
3.9.2 初始化容器示例 183
3.9.3 使用初始化容器时的注意事项 188
3.9.4 将初始化容器作为长时间运行的边车容器 188
第4章 Pod工作负载详解 193
4.1 Pod的工作负载管理机制概述 194
4.2 Deployment:面向无状态应用的Pod副本集管理 196
4.2.1 Deployment提供的管理功能 197
4.2.2 Deployment的配置信息 199
4.2.3 Deployment的更新机制 200
4.2.4 Deployment的回滚 206
4.2.5 Deployment部署的暂停和恢复 209
4.2.6 Deployment的生命周期 211
4.3 DaemonSet:在每个Node上仅运行一个Pod 213
4.3.1 DaemonSet概述 213
4.3.2 DaemonSet的配置信息 215
4.3.3 DaemonSet的更新策略 215
4.3.4 DaemonSet的回滚 218
4.4 StatefulSet:面向有状态应用的Pod副本集管理 220
4.4.1 StatefulSet的主要配置和工作机制 221
4.4.2 StatefulSet的Pod水平扩缩容机制 228
4.4.3 StatefulSet的更新策略 229
4.4.4 StatefulSet的Pod管理策略 232
4.4.5 StatefulSet的PVC存储保留策略 235
4.4.6 使用StatefulSet搭建MongoDB集群 236
4.5 Pod水平扩缩容机制 247
4.5.1 手动扩缩容机制 247
4.5.2 自动扩缩容机制 249
4.6 Job:批处理任务 274
4.6.1 Job的主要配置和工作机制 275
4.6.2 Job的并行处理机制和常用模式 279
4.6.3 Pod失效时的处理机制 289
4.6.4 Job的终止与清理机制 299
4.6.5 Job的挂起与恢复 303
4.7 CronJob:定时任务 306
4.7.1 CronJob的定时表达式 307
4.7.2 编写一个CronJob配置文件 308
4.7.3 CronJob工作机制的不足之处 311
第5章 深入掌握Service 312
5.1 Service定义详解 313
5.2 Service的概念和原理 315
5.2.1 Service和Endpoint概述 315
5.2.2 Service的负载均衡机制 320
5.2.3 Service的多端口设置 325
5.2.4 将外部服务定义为Service 326
5.2.5 Service的类型 327
5.2.6 Headless Service 335
5.2.7 为服务设置外部IP地址 338
5.2.8 Service支持的网络协议 338
5.2.9 Kubernetes的服务发现机制 340
5.2.10 端点分片 342
5.2.11 拓扑感知路由机制 347
5.3 DNS服务搭建和配置指南 350
5.3.1 修改每个Node上kubelet的DNS启动参数 352
5.3.2 部署CoreDNS服务 352
5.3.3 服务名的DNS解析 356
5.3.4 CoreDNS的配置说明 358
5.4 Node本地DNS缓存服务搭建和配置指南 360
5.5 Service和Pod的DNS域名相关特性 367
5.5.1 Service的DNS域名 368
5.5.2 Pod的DNS域名 370
5.5.3 Pod自定义hostname和subdomain 371
5.5.4 FQDN格式的Pod主机名设置 374
5.5.5 Pod的DNS策略 375
5.5.6 Pod中的自定义DNS配置 376
5.5.7 Windows Node的DNS解析机制说明 377
5.6 Ingress 7层路由机制 378
5.6.1 一个完整的例子(Ingress Controller Ingress策略 客户端访问) 379
5.6.2 Ingress资源对象详解 390
5.6.3 Ingress策略配置详解 397
5.6.4 Ingress的TLS安全设置 402
5.6.5 Ingress的继任者——Gateway API简介 408
5.7 Kubernetes对IPv4和IPv6双栈功能的支持 411
5.7.1 Kubernetes集群启用IPv4和IPv6双栈功能 411
5.7.2 Pod双栈IP地址配置 414
5.7.3 Service双栈IP地址配置 417
第6章 Master核心组件的运行机制 423
6.1 Kubernetes架构解析 424
6.1.1 以API Server为中心的架构 424
6.1.2 全自动的资源管控能力 426
6.1.3 以开放为基础的演进思路 431
6.1.4 拥抱新技术 433
6.1.5 安全至上 434
6.2 API Server原理解析 437
6.2.1 API Server概述 438
6.2.2 API Server架构解析 444
6.2.3 独特的Kubernetes Proxy API 448
6.2.4 集群功能模块之间的通信 450
6.2.5 API Server网络隔离的设计 452
6.3 Controller Manager原理解析 454
6.3.1 Deployment Controller 457
6.3.2 Node Controller 458
6.3.3 ResourceQuota Controller 461
6.3.4 Namespace Controller 463
6.3.5 Endpoint Controller 464
6.4 Scheduler原理解析 465
6.4.1 Scheduler的调度流程 466
6.4.2 Scheduler Framework 468
6.4.3 Scheduling Profiles 472
6.4.4 深入分析抢占式调度 473
第7章 Node核心组件的运行机制 480
7.1 kubelet运行机制解析 481
7.1.1 资源管理 482
7.1.2 Pod管理 517
7.1.3 性能指标API 524
7.1.4 容器运行时管理 527
7.2 kube-proxy运行机制解析 533
7.2.1 第一代Proxy 533
7.2.2 第二代Proxy 535
7.2.3 第三代Proxy 536
7.3 Kubernetes中的垃圾回收机制 537
7.3.1 Pod对象的垃圾回收 537
7.3.2 Job对象的垃圾回收 538
7.3.3 无主对象的垃圾回收 539
7.3.4 容器和镜像的垃圾回收 540
7.3.5 PV对象的垃圾回收 540
7.3.6 Node与Node Lease对象的垃圾回收 542
第8章 Kubernetes运维管理基础 544
8.1 基础集群运维 545
8.1.1 常用运维技巧 545
8.1.2 Node的运维管理 552
8.1.3 PodDisruptionBudget——出现干扰时的Pod保护机制 557
8.1.4 Pod中的多个容器共享进程命名空间 563
8.1.5 使用CEL校验数据 566
8.2 kustomize的基础操作 570
8.2.1 kustomize概述 570
8.2.2 kustomize的常见例子 571
8.2.3 kustomization的高级用法 574
8.3 Helm的基础操作 578
8.3.1 Helm——应用包管理 578
8.3.2 Helm——Chart仓库 581
8.3.3 Helm——部署应用 584
8.3.4 Helm——应用更新和回滚 588
8.3.5 Helm——卸载应用 591
8.4 集群监控 592
8.4.1 Kubernetes核心组件的性能监控 592
8.4.2 Metrics Server实践 595
8.4.3 Prometheus性能监控平台实践 598
8.4.4 Kubernetes日志管理实践 604
8.4.5 使用Dashboard监控集群资源状态和性能 634
第9章 Kubernetes运维管理进阶 641
9.1 多租户计算资源管理实践 642
9
评论
还没有评论。