书籍详情
Kubernetes从入门到DevOps企业应用实战
作者:韩先超
出版社:清华大学出版社
出版时间:2023-09-01
ISBN:9787302644347
定价:¥128.00
购买这本书可以去
内容简介
《Kubernetes从入门到DevOps企业应用实战》以实战为主,内容涵盖容器技术、Kubernetes核心资源以及基于Kubernetes的企业级实践。从容器基础知识开始,由浅入深,阐述Kubernetes各个方面的知识,并提供大量实际项目和应用场景。全书共20章,第1~3章讲解容器技术,这是理解Kubernetes的必要基础,主要介绍容器的定义、创建和管理容器、容器网络和存储等方面的知识。第4章讲解如何使用Kubeadm和二进制文件安装高可用Kubernetes集群。第5~12章讲解Kubernetes的核心资源,包括Pod、Deployment、Service、Ingress等资源的定义、使用和管理方法,以及实际应用场景。第13~20章讲解基于Kubernetes的企业实践,介绍如何使用Kubernetes解决实际问题,包括使用Kubernetes进行应用程序的部署、容器云平台的构建、流量治理、监控、自动化扩缩容和灰度发布等项目与案例。 《Kubernetes从入门到DevOps企业应用实战》基于Kubernetes 1.27新版本编写(本书的内容也适合1.20之后的所有版本),从零基础开始,涵盖理论知识、企业级案例,以及自动化运维DevOps体系和一些大厂架构设计思路,适合云原生领域的从业者、Kubernetest初学者、运维和开发人员使用,也可以作为企业内训、培训机构和大中专院校的教学用书。
作者简介
韩先超高级运维,Kubernetes架构师,国内最早一批Kubernetes布道者,曾就职于世界500强上市公司,拥有RHCE、RHCA、CKA等认证证书,对于Linux、DevOps、Kubernetes和自动化等领域有着深入的理解和实践经验。在 CSDN、51CTO等平台发表过多篇Linux、DevOps、Kubernetes、自动化等方面的文章,累计阅读量突破100万;在 51CTO平台的Kubernetes课程拥有近200万学员;推出的Kubernetes课程被选入工信部人才交流中心官方认证课程 。在2021年5月28日由51CTO主办,中关村数智人工智能产业联盟指导的《数启创新 云触未来! Web3.0云响力新一 代云计算大会》中作为主讲嘉宾分享Kubernetes如何助力企业转型,被北京日报和环球网发文专题报道;受Linux 基金会邀请,作为主讲嘉宾分享Kubernetes在企业中的发展趋势和具体应用场景;曾为国家电网、振兴银行、中 国移动、中国电信,天翼物联、任子行等大型企业提供Kubernetes技术培训;还积极参与企业内训项目,为各大 企业提供技术培训和解决方案支持。
目录
第1章 Docker初探 1
1.1 Docker概述 1
1.1.1 Docker是什么 1
1.1.2 Docker的版本 2
1.1.3 学习Docker的方式 2
1.2 Docker的组成与特点 2
1.2.1 Docker的组成 2
1.2.2 Docker的特点 4
1.3 安装和配置Docker 5
1.3.1 配置主机名 5
1.3.2 关闭Firewalld防火墙 6
1.3.3 关闭SELinux 6
1.3.4 配置时间同步 7
1.3.5 编写计划任务 7
1.3.6 重启crond服务使计划任务生效 8
1.3.7 安装基础软件包 8
1.3.8 安装Docker-CE 9
1.3.9 修改内核参数 11
1.3.10 配置Docker镜像加速器 13
1.4 Docker镜像与容器 14
1.4.1 Docker镜像 14
1.4.2 Docker容器 17
1.5 案例:通过Docker部署Nginx服务 24
1.5.1 基于CentOS镜像运行一个Docker容器 24
1.5.2 查看Docker容器是否正常运行 24
1.5.3 在Docker中安装Nginx容器 25
1.5.4 在Docker容器中通过yum安装Nginx 26
1.6 本章小结 28
第2章 Dockerfile构建企业级镜像 29
2.1 Dockerfile语法详解 29
2.2 Dockerfile构建企业级镜像 43
2.2.1 案例:Dockerfile构建Nginx镜像 43
2.2.2 案例:Dockerfile构建Tomcat镜像 48
2.3 本章小结 50
第3章 Docker私有镜像仓库Harbor 51
3.1 Harbor的概念及证书签发 51
3.2 安装Harbor 53
3.3 Harbor图形界面使用说明 57
3.4 测试使用Harbor私有镜像仓库 59
3.5 Harbor高可用 62
3.6 本章小结 63
第4章 Kubeadm快速搭建Kubernetes集群 64
4.1 初始化实验环境 65
4.1.1 配置静态IP地址 67
4.1.2 配置机器主机名 68
4.1.3 配置主机hosts文件 68
4.1.4 配置控制节点到工作节点无密码登录 68
4.1.5 关闭交换分区 69
4.1.6 修改机器内核参数 70
4.1.7 关闭Firewalld防火墙 72
4.1.8 关闭SELinux 72
4.1.9 配置安装Docker和Containerd需要的阿里云的在线yum源 73
4.1.10 配置安装Kubernetes组件需要的阿里云的在线yum源 74
4.1.11 配置时间同步 75
4.1.12 安装Docker-CE和Containerd服务 76
4.2 安装Kubernetes集群 80
4.2.1 安装初始化Kubernetes集群需要的软件包 80
4.2.2 Kubeadm初始化Kubernetes集群 81
4.2.3 配置Kubectl的配置文件config 83
4.3 扩容Kubernetes集群 85
4.3.1 添加第一个工作节点 85
4.3.2 添加第二个工作节点 86
4.4 安装Kubernetes网络插件Calico 88
4.4.1 安装Calico 88
4.4.2 Calico的配置 89
4.4.3 calico-kube-controllers解析 94
4.5 测试Kubernetes集群是否健康 95
4.5.1 测试在Kubernetes中创建的Pod是否可以正常访问网络 95
4.5.2 测试CoreDNS是否正常 96
4.5.3 延长证书 96
4.6 本章小结 99
第5章 Kubernetes核心资源Pod 100
5.1 Pod是什么 100
5.1.1 Pod基本介绍 100
5.1.2 Pod如何管理多个容器 101
5.1.3 Pod网络 102
5.1.4 Pod存储 102
5.2 Pod的工作方式 103
5.2.1 自主式Pod 103
5.2.2 控制器管理的Pod 107
5.3 如何创建一个Pod资源 111
5.3.1 通过YAML文件创建Pod资源 112
5.3.2 Pod资源清单编写技巧 113
5.3.3 创建一个完整的Pod资源 141
5.3.4 和Pod相关的命令解读 144
5.4 nodeName和nodeSelector 146
5.4.1 nodeName实例 147
5.4.2 nodeSelector实例 148
5.5 亲和性、污点和容忍度 149
5.5.1 节点亲和性 149
5.5.2 Pod亲和性和反亲和性 154
5.5.3 污点和容忍度 160
5.6 Pod生命周期和健康探测 165
5.6.1 初始化容器initcontainer 166
5.6.2 存活探测 167
5.6.3 就绪探测 170
5.6.4 容器钩子 172
5.7 本章小结 174
第6章 ReplicaSet和Deployment控制器管理Pod 175
6.1 ReplicaSet如何管理Pod 176
6.1.1 ReplicaSet概述 176
6.1.2 ReplicaSet资源清单文件的编写技巧 176
6.2 ReplicaSet管理Pod案例:部署Guestbook留言板 178
6.3 ReplicaSet管理Pod实例:扩容、缩容、更新 180
6.4 Deployment如何管理Pod 183
6.4.1 Deployment概述 183
6.4.2 Deployment如何管理ReplicaSet和Pod 184
6.5 Deployment资源清单文件的编写技巧 185
6.5.1 查看Deployment资源对象YAML文件的组成 186
6.5.2 查看Deployment下的spec字段 186
6.6 Deployment管理Pod案例解析 188
6.7 Deployment管理Pod:扩容和缩容 190
6.7.1 电商网站访问量急增——扩容Pod 190
6.7.2 电商网站淡季或业务低峰期——缩容Pod 191
6.8 基于Deployment实现Pod滚动更新——WebApp应用版本升级 192
6.9 本章小结 195
第7章 Service四层负载均衡 197
7.1 Service的概念与原理 197
7.1.1 Service基本介绍 197
7.1.2 Kubernetes集群中的3类IP地址 198
7.2 创建Service资源 200
7.2.1 创建Service资源的方法 200
7.2.2 案例:用YAML文件创建Service资源 200
7.2.3 查看定义Service资源需要的字段 202
7.2.4 Service的4种Type类型 203
7.2.5 Service的端口定义 206
7.2.6 创建Service:类型是ClusterIP 207
7.2.7 创建Service:类型是NodePort 209
7.2.8 创建Service:类型是ExternalName 212
7.3 本章小结 215
第8章 Kubernetes持久化存储 216
8.1 Kubernetes支持的持久化存储类型 216
8.1.1 Kubernetes持久化存储:emptyDir案例 218
8.1.2 Kubernetes持久化存储:hostPath案例 218
8.1.3 Kubernetes持久化存储:NFS案例 219
8.2 Kubernetes持久化存储:PV和PVC 221
8.2.1 PV和PVC概述 221
8.2.2 创建Pod,使用PVC作为持久化存储卷 225
8.3 Kubernetes存储类:StorageClass 228
8.4 本章小结 231
第9章 Kubernetes控制器:StatefulSet 232
9.1 StatefulSet控制器的概念和原理 233
9.1.1 为什么使用Headless Service 233
9.1.2 为什么使用volumeClaimTemplate 233
9.2 StatefulSet资源清单文件的编写技巧 235
9.2.1 定义API版本和资源类型 235
9.2.2 定义StatefulSet的spec字段 235
9.2.3 定义Pod模板 236
9.3 StatefulSet使用案例:部署Web站点 236
9.3.1 创建存储类 236
9.3.2 创建StatefulSet资源 237
9.3.3 查看StatefulSet是否创建成功 238
9.3.4 查看StatefulSet管理的Pod 238
9.4 StatefulSet管理Pod:扩容、缩容和更新案例 239
9.4.1 案例1:扩容 239
9.4.2 案例2:缩容 239
9.4.3 案例3:更新 239
9.5 本章小结 240
第10章 Kubernetes控制器:DaemonSet 241
10.1 DaemonSet如何管理Pod 242
10.2 DaemonSet资源创建方法 242
10.2.1 DaemonSet资源清单的定义方法 242
10.2.2 DaemonSet使用案例:部署日志收集组件Fluentd 244
10.2.3 DaemonSet管理Pod:滚动更新 247
10.3 本章小结 248
第11章 配置管理中心ConfigMap和Secret 250
11.1 ConfigMap概述 251
11.2 ConfigMap的创建方法 251
11.3 案例:使用ConfigMap维护Pod中容器的配置信息 253
11.3.1 通过环境变量引入:configMapKeyRef 253
11.3.2 通过环境变量引入:使用envfrom 255
11.3.3 把ConfigMap做成Volume,挂载到Pod 256
11.4 Secret基本介绍及使用案例 257
11.5 本章小结 259
第12章 Ingress和Ingress Controller 260
12.1 Ingress和Ingress Controller基本介绍和安装 260
12.1.1 使用Ingress Controller代理Kubernetes内部Pod的流程 260
12.1.2 安装Ingress Controller 262
12.2 案例:测试Ingress HTTP代理Tomcat 262
12.3 本章小结 266
第13章 搭建Prometheus Grafana监控平台 267
13.1 Prometheus基本介绍 267
13.1.1 Prometheus的特点 268
13.1.2 Prometheus生态系统常用组件介绍 269
13.1.3 Prometheus采集数据流程 270
13.1.4 Prometheus查询语言PromQL 271
13.2 安装和配置Prometheus 273
13.2.1 安装和配置Prometheus 273
13.2.2 监控利器Node-Exporter 283
13.3 可视化UI界面Grafana的安装和配置 287
13.3.1 Grafana介绍 287
13.3.2 安装Grafana 287
13.3.3 Grafana界面接入Prometheus数据源 290
13.4 配置Alertmanager发送告警 297
13.4.1 案例:配置Alertmanager发送告警到QQ邮箱 297
13.4.2 案例:配置Alertmanager发送告警到钉钉群组 307
13.5 本章小结 308
第14章 基于Jenkins Kubernetes构建企业级DevOps容器云平台 309
14.1 Kubernetes助力DevOps企业落地实践 309
14.1.1 DevOps的基本概念 309
14.1.2 Kubernetes在DevOps中的核心作用 311
14.1.3 在Kubernetes集群安装和配置Jenkins 312
14.1.4 案例:使用Jenkins将代码自动化部署到Kubernetes集群 328
14.2 Jenkins Pipeline语法介绍 335
14.2.1 Jenkins Pipeline介绍 335
14.2.2 为什么用Jenkins Pipeline 335
14.2.3 Jenkins Pipeline声明式语法 335
14.2.4 Jenkins Pipeline脚本式语法 344
14.3 本章小结 346
第15章 新一代服务网格Istio结合Kubernetes实现流量治理 347
15.1 认识Istio服务网格 347
15.1.1 Istio服务网格概述 347
15.1.2 Istio的核心特性 348
15.1.3 Istio的架构与功能 350
15.2 Istio组件详解 353
15.2.1 Pilot 353
15.2.2 Envoy 354
15.2.3 Citadel 355
15.2.4 Galley 355
15.2.5 其他组件 356
15.3 在Kubernetes平台安装Istio 356
15.3.1 准备安装Istio的压缩包 356
15.3.2 安装Istio 357
15.4 案例:Istio结合Kubernetes部署在线书店Bookinfo 359
15.4.1 在线书店(Bookinfo)项目介绍 359
15.4.2 在线书店的部署 360
15.4.3 启动应用服务 360
15.4.4 卸载Bookinfo服务 364
15.5 通过Istio实现灰度发布 366
15.5.1 什么是灰度发布 366
15.5.2 使用Istio进行金丝雀发布 366
15.6 Istio流量治理实例 370
15.6.1 断路器 370
15.6.2 超时 376
15.6.3 故障注入和重试 383
15.7 分布式追踪系统Jaeger 386
15.8 分布式追踪系统Kiali 390
15.9 本章小结 392
第16章 高并发场景下基于Kubernetes实现自动扩缩容 393
16.1 Metrics Server在自动扩缩容中的核心作用 393
16.1.1 Metrics Server的部署方式 394
16.1.2 Metrics Server的具体应用 399
16.2 水平Pod自动扩缩容HPA 400
16.2.1 HPA基本介绍 400
16.2.2 HPA设置和使用案例 400
16.3 垂直Pod自动扩缩容VPA 403
16.3.1 VPA基本介绍 403
16.3.2 VPA设置和使用案例 404
16.4 本章小结 408
第17章 基于Kubernetes搭建高吞吐量的日志收集平台 409
17.1 常见的日志收集方案对比分析 409
17.2 EFK案例分享——组件部署 411
17.2.1 步骤一:部署Elasticsearch 411
17.2.2 步骤二:部署Fluentd服务 414
17.2.3 步骤三:部署Kibana服务 417
17.2.4 步骤四:验证 419
17.3 ELK案例分享——步骤说明 420
17.3.1 创建命名空间 420
17.3.2 创建持久卷和持久卷声明 420
17.3.3 创建Elasticsearch集群 421
17.3.4 创建Logstash集群 423
17.3.5 创建Kibana 425
17.4 EFK Logstash Kafka案例分享 426
17.4.1 安装和配置Fluentd 426
17.4.2 创建Fluentd配置文件 427
17.4.3 安装和配置Kafka和Logstash 428
17.4.4 安装和配置Elasticsearch和Kibana 429
17.4.5 测试EFK日志收集系统 430
17.5 本章小结 431
第18章 在Kubernetes集群部署代码和服务 432
18.1 在Kubernetes集群部署Go代码 433
18.2 在Kubernetes集群部署Python代码 434
18.3 在Kubernetes集群部署Nginx服务 437
18.3.1 步骤一:编写Nginx部署所需的Deployment和Service资源定义文件 437
18.3.2 步骤二:在Kubernetes集群上部署Nginx服务 438
18.4 在Kubernetes集群部署Tomcat服务 438
18.4.1 步骤一:创建命名空间 439
18.4.2 步骤二:部署Tomcat服务 439
18.5 本章小结 440
第19章 K3s实际应用场景及案例分享 442
19.1 K3s应用领域 442
19.1.1 边缘计算 442
19.1.2 嵌入式设备 443
19.1.3 云原生领域 444
19.1.4 多云管理 444
19.2 K3s实战案例分享 445
19.3 安装和使用K3s 445
19.3.1 安装K3s 445
19.3.2 使用K3s 446
19.4 本章小结 447
第20章 Kubernetes原生的CI/CD工具Tekton 449
20.1 Tekton基本介绍和案例演示 449
20.1.1 Tekton概述 449
20.1.2 使用Tekton构建和测试应用程序 451
20.2 使用Tekton构建CI/CD流水线最佳实践 454
20.2.1 创建应用程序代码 454
20.2.2 创建Docker镜像 455
20.2.3 创建Tekton资源 455
20.2.4 执行CI/CD流程 458
20.3 本章小结 460
1.1 Docker概述 1
1.1.1 Docker是什么 1
1.1.2 Docker的版本 2
1.1.3 学习Docker的方式 2
1.2 Docker的组成与特点 2
1.2.1 Docker的组成 2
1.2.2 Docker的特点 4
1.3 安装和配置Docker 5
1.3.1 配置主机名 5
1.3.2 关闭Firewalld防火墙 6
1.3.3 关闭SELinux 6
1.3.4 配置时间同步 7
1.3.5 编写计划任务 7
1.3.6 重启crond服务使计划任务生效 8
1.3.7 安装基础软件包 8
1.3.8 安装Docker-CE 9
1.3.9 修改内核参数 11
1.3.10 配置Docker镜像加速器 13
1.4 Docker镜像与容器 14
1.4.1 Docker镜像 14
1.4.2 Docker容器 17
1.5 案例:通过Docker部署Nginx服务 24
1.5.1 基于CentOS镜像运行一个Docker容器 24
1.5.2 查看Docker容器是否正常运行 24
1.5.3 在Docker中安装Nginx容器 25
1.5.4 在Docker容器中通过yum安装Nginx 26
1.6 本章小结 28
第2章 Dockerfile构建企业级镜像 29
2.1 Dockerfile语法详解 29
2.2 Dockerfile构建企业级镜像 43
2.2.1 案例:Dockerfile构建Nginx镜像 43
2.2.2 案例:Dockerfile构建Tomcat镜像 48
2.3 本章小结 50
第3章 Docker私有镜像仓库Harbor 51
3.1 Harbor的概念及证书签发 51
3.2 安装Harbor 53
3.3 Harbor图形界面使用说明 57
3.4 测试使用Harbor私有镜像仓库 59
3.5 Harbor高可用 62
3.6 本章小结 63
第4章 Kubeadm快速搭建Kubernetes集群 64
4.1 初始化实验环境 65
4.1.1 配置静态IP地址 67
4.1.2 配置机器主机名 68
4.1.3 配置主机hosts文件 68
4.1.4 配置控制节点到工作节点无密码登录 68
4.1.5 关闭交换分区 69
4.1.6 修改机器内核参数 70
4.1.7 关闭Firewalld防火墙 72
4.1.8 关闭SELinux 72
4.1.9 配置安装Docker和Containerd需要的阿里云的在线yum源 73
4.1.10 配置安装Kubernetes组件需要的阿里云的在线yum源 74
4.1.11 配置时间同步 75
4.1.12 安装Docker-CE和Containerd服务 76
4.2 安装Kubernetes集群 80
4.2.1 安装初始化Kubernetes集群需要的软件包 80
4.2.2 Kubeadm初始化Kubernetes集群 81
4.2.3 配置Kubectl的配置文件config 83
4.3 扩容Kubernetes集群 85
4.3.1 添加第一个工作节点 85
4.3.2 添加第二个工作节点 86
4.4 安装Kubernetes网络插件Calico 88
4.4.1 安装Calico 88
4.4.2 Calico的配置 89
4.4.3 calico-kube-controllers解析 94
4.5 测试Kubernetes集群是否健康 95
4.5.1 测试在Kubernetes中创建的Pod是否可以正常访问网络 95
4.5.2 测试CoreDNS是否正常 96
4.5.3 延长证书 96
4.6 本章小结 99
第5章 Kubernetes核心资源Pod 100
5.1 Pod是什么 100
5.1.1 Pod基本介绍 100
5.1.2 Pod如何管理多个容器 101
5.1.3 Pod网络 102
5.1.4 Pod存储 102
5.2 Pod的工作方式 103
5.2.1 自主式Pod 103
5.2.2 控制器管理的Pod 107
5.3 如何创建一个Pod资源 111
5.3.1 通过YAML文件创建Pod资源 112
5.3.2 Pod资源清单编写技巧 113
5.3.3 创建一个完整的Pod资源 141
5.3.4 和Pod相关的命令解读 144
5.4 nodeName和nodeSelector 146
5.4.1 nodeName实例 147
5.4.2 nodeSelector实例 148
5.5 亲和性、污点和容忍度 149
5.5.1 节点亲和性 149
5.5.2 Pod亲和性和反亲和性 154
5.5.3 污点和容忍度 160
5.6 Pod生命周期和健康探测 165
5.6.1 初始化容器initcontainer 166
5.6.2 存活探测 167
5.6.3 就绪探测 170
5.6.4 容器钩子 172
5.7 本章小结 174
第6章 ReplicaSet和Deployment控制器管理Pod 175
6.1 ReplicaSet如何管理Pod 176
6.1.1 ReplicaSet概述 176
6.1.2 ReplicaSet资源清单文件的编写技巧 176
6.2 ReplicaSet管理Pod案例:部署Guestbook留言板 178
6.3 ReplicaSet管理Pod实例:扩容、缩容、更新 180
6.4 Deployment如何管理Pod 183
6.4.1 Deployment概述 183
6.4.2 Deployment如何管理ReplicaSet和Pod 184
6.5 Deployment资源清单文件的编写技巧 185
6.5.1 查看Deployment资源对象YAML文件的组成 186
6.5.2 查看Deployment下的spec字段 186
6.6 Deployment管理Pod案例解析 188
6.7 Deployment管理Pod:扩容和缩容 190
6.7.1 电商网站访问量急增——扩容Pod 190
6.7.2 电商网站淡季或业务低峰期——缩容Pod 191
6.8 基于Deployment实现Pod滚动更新——WebApp应用版本升级 192
6.9 本章小结 195
第7章 Service四层负载均衡 197
7.1 Service的概念与原理 197
7.1.1 Service基本介绍 197
7.1.2 Kubernetes集群中的3类IP地址 198
7.2 创建Service资源 200
7.2.1 创建Service资源的方法 200
7.2.2 案例:用YAML文件创建Service资源 200
7.2.3 查看定义Service资源需要的字段 202
7.2.4 Service的4种Type类型 203
7.2.5 Service的端口定义 206
7.2.6 创建Service:类型是ClusterIP 207
7.2.7 创建Service:类型是NodePort 209
7.2.8 创建Service:类型是ExternalName 212
7.3 本章小结 215
第8章 Kubernetes持久化存储 216
8.1 Kubernetes支持的持久化存储类型 216
8.1.1 Kubernetes持久化存储:emptyDir案例 218
8.1.2 Kubernetes持久化存储:hostPath案例 218
8.1.3 Kubernetes持久化存储:NFS案例 219
8.2 Kubernetes持久化存储:PV和PVC 221
8.2.1 PV和PVC概述 221
8.2.2 创建Pod,使用PVC作为持久化存储卷 225
8.3 Kubernetes存储类:StorageClass 228
8.4 本章小结 231
第9章 Kubernetes控制器:StatefulSet 232
9.1 StatefulSet控制器的概念和原理 233
9.1.1 为什么使用Headless Service 233
9.1.2 为什么使用volumeClaimTemplate 233
9.2 StatefulSet资源清单文件的编写技巧 235
9.2.1 定义API版本和资源类型 235
9.2.2 定义StatefulSet的spec字段 235
9.2.3 定义Pod模板 236
9.3 StatefulSet使用案例:部署Web站点 236
9.3.1 创建存储类 236
9.3.2 创建StatefulSet资源 237
9.3.3 查看StatefulSet是否创建成功 238
9.3.4 查看StatefulSet管理的Pod 238
9.4 StatefulSet管理Pod:扩容、缩容和更新案例 239
9.4.1 案例1:扩容 239
9.4.2 案例2:缩容 239
9.4.3 案例3:更新 239
9.5 本章小结 240
第10章 Kubernetes控制器:DaemonSet 241
10.1 DaemonSet如何管理Pod 242
10.2 DaemonSet资源创建方法 242
10.2.1 DaemonSet资源清单的定义方法 242
10.2.2 DaemonSet使用案例:部署日志收集组件Fluentd 244
10.2.3 DaemonSet管理Pod:滚动更新 247
10.3 本章小结 248
第11章 配置管理中心ConfigMap和Secret 250
11.1 ConfigMap概述 251
11.2 ConfigMap的创建方法 251
11.3 案例:使用ConfigMap维护Pod中容器的配置信息 253
11.3.1 通过环境变量引入:configMapKeyRef 253
11.3.2 通过环境变量引入:使用envfrom 255
11.3.3 把ConfigMap做成Volume,挂载到Pod 256
11.4 Secret基本介绍及使用案例 257
11.5 本章小结 259
第12章 Ingress和Ingress Controller 260
12.1 Ingress和Ingress Controller基本介绍和安装 260
12.1.1 使用Ingress Controller代理Kubernetes内部Pod的流程 260
12.1.2 安装Ingress Controller 262
12.2 案例:测试Ingress HTTP代理Tomcat 262
12.3 本章小结 266
第13章 搭建Prometheus Grafana监控平台 267
13.1 Prometheus基本介绍 267
13.1.1 Prometheus的特点 268
13.1.2 Prometheus生态系统常用组件介绍 269
13.1.3 Prometheus采集数据流程 270
13.1.4 Prometheus查询语言PromQL 271
13.2 安装和配置Prometheus 273
13.2.1 安装和配置Prometheus 273
13.2.2 监控利器Node-Exporter 283
13.3 可视化UI界面Grafana的安装和配置 287
13.3.1 Grafana介绍 287
13.3.2 安装Grafana 287
13.3.3 Grafana界面接入Prometheus数据源 290
13.4 配置Alertmanager发送告警 297
13.4.1 案例:配置Alertmanager发送告警到QQ邮箱 297
13.4.2 案例:配置Alertmanager发送告警到钉钉群组 307
13.5 本章小结 308
第14章 基于Jenkins Kubernetes构建企业级DevOps容器云平台 309
14.1 Kubernetes助力DevOps企业落地实践 309
14.1.1 DevOps的基本概念 309
14.1.2 Kubernetes在DevOps中的核心作用 311
14.1.3 在Kubernetes集群安装和配置Jenkins 312
14.1.4 案例:使用Jenkins将代码自动化部署到Kubernetes集群 328
14.2 Jenkins Pipeline语法介绍 335
14.2.1 Jenkins Pipeline介绍 335
14.2.2 为什么用Jenkins Pipeline 335
14.2.3 Jenkins Pipeline声明式语法 335
14.2.4 Jenkins Pipeline脚本式语法 344
14.3 本章小结 346
第15章 新一代服务网格Istio结合Kubernetes实现流量治理 347
15.1 认识Istio服务网格 347
15.1.1 Istio服务网格概述 347
15.1.2 Istio的核心特性 348
15.1.3 Istio的架构与功能 350
15.2 Istio组件详解 353
15.2.1 Pilot 353
15.2.2 Envoy 354
15.2.3 Citadel 355
15.2.4 Galley 355
15.2.5 其他组件 356
15.3 在Kubernetes平台安装Istio 356
15.3.1 准备安装Istio的压缩包 356
15.3.2 安装Istio 357
15.4 案例:Istio结合Kubernetes部署在线书店Bookinfo 359
15.4.1 在线书店(Bookinfo)项目介绍 359
15.4.2 在线书店的部署 360
15.4.3 启动应用服务 360
15.4.4 卸载Bookinfo服务 364
15.5 通过Istio实现灰度发布 366
15.5.1 什么是灰度发布 366
15.5.2 使用Istio进行金丝雀发布 366
15.6 Istio流量治理实例 370
15.6.1 断路器 370
15.6.2 超时 376
15.6.3 故障注入和重试 383
15.7 分布式追踪系统Jaeger 386
15.8 分布式追踪系统Kiali 390
15.9 本章小结 392
第16章 高并发场景下基于Kubernetes实现自动扩缩容 393
16.1 Metrics Server在自动扩缩容中的核心作用 393
16.1.1 Metrics Server的部署方式 394
16.1.2 Metrics Server的具体应用 399
16.2 水平Pod自动扩缩容HPA 400
16.2.1 HPA基本介绍 400
16.2.2 HPA设置和使用案例 400
16.3 垂直Pod自动扩缩容VPA 403
16.3.1 VPA基本介绍 403
16.3.2 VPA设置和使用案例 404
16.4 本章小结 408
第17章 基于Kubernetes搭建高吞吐量的日志收集平台 409
17.1 常见的日志收集方案对比分析 409
17.2 EFK案例分享——组件部署 411
17.2.1 步骤一:部署Elasticsearch 411
17.2.2 步骤二:部署Fluentd服务 414
17.2.3 步骤三:部署Kibana服务 417
17.2.4 步骤四:验证 419
17.3 ELK案例分享——步骤说明 420
17.3.1 创建命名空间 420
17.3.2 创建持久卷和持久卷声明 420
17.3.3 创建Elasticsearch集群 421
17.3.4 创建Logstash集群 423
17.3.5 创建Kibana 425
17.4 EFK Logstash Kafka案例分享 426
17.4.1 安装和配置Fluentd 426
17.4.2 创建Fluentd配置文件 427
17.4.3 安装和配置Kafka和Logstash 428
17.4.4 安装和配置Elasticsearch和Kibana 429
17.4.5 测试EFK日志收集系统 430
17.5 本章小结 431
第18章 在Kubernetes集群部署代码和服务 432
18.1 在Kubernetes集群部署Go代码 433
18.2 在Kubernetes集群部署Python代码 434
18.3 在Kubernetes集群部署Nginx服务 437
18.3.1 步骤一:编写Nginx部署所需的Deployment和Service资源定义文件 437
18.3.2 步骤二:在Kubernetes集群上部署Nginx服务 438
18.4 在Kubernetes集群部署Tomcat服务 438
18.4.1 步骤一:创建命名空间 439
18.4.2 步骤二:部署Tomcat服务 439
18.5 本章小结 440
第19章 K3s实际应用场景及案例分享 442
19.1 K3s应用领域 442
19.1.1 边缘计算 442
19.1.2 嵌入式设备 443
19.1.3 云原生领域 444
19.1.4 多云管理 444
19.2 K3s实战案例分享 445
19.3 安装和使用K3s 445
19.3.1 安装K3s 445
19.3.2 使用K3s 446
19.4 本章小结 447
第20章 Kubernetes原生的CI/CD工具Tekton 449
20.1 Tekton基本介绍和案例演示 449
20.1.1 Tekton概述 449
20.1.2 使用Tekton构建和测试应用程序 451
20.2 使用Tekton构建CI/CD流水线最佳实践 454
20.2.1 创建应用程序代码 454
20.2.2 创建Docker镜像 455
20.2.3 创建Tekton资源 455
20.2.4 执行CI/CD流程 458
20.3 本章小结 460
猜您喜欢