Kubernetes从入门到DevOps企业应用实战

Kubernetes从入门到DevOps企业应用实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2023-09
版次: 1
ISBN: 9787302644347
定价: 128.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 944页
字数: 708千字
3人买过
  • 《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
  • 内容简介:
    《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
查看详情
相关图书 / 更多
Kubernetes从入门到DevOps企业应用实战
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第6版)(上)
龚正
Kubernetes从入门到DevOps企业应用实战
Kubernetes实战:构建生产级应用平台
[美]约翰·哈里斯 著;[美]乔希·罗索;[美]里奇·兰德;[美]亚历山大·布兰德
Kubernetes从入门到DevOps企业应用实战
Kubernetes安全指南
(英)安德鲁 马丁(Andrew Martin),(奥地利)迈克尔 豪森布拉斯(Michael Hausenblas)
Kubernetes从入门到DevOps企业应用实战
Kubernetes企业级云原生运维实战 李振良 编
李振良 编
Kubernetes从入门到DevOps企业应用实战
Kubernetes原生微服务开发
肯·芬尼根(Ken Finnigan)著 陈计节 张圣奇 译;[美]约翰·克林甘(John Clingan)
Kubernetes从入门到DevOps企业应用实战
Kubernetes快速进阶与实战
艾叔
Kubernetes从入门到DevOps企业应用实战
Kubernetes集群实战 微课版 王雅静,成安霞 编
王雅静;成安霞
Kubernetes从入门到DevOps企业应用实战
Kubernetes Operator开发进阶
胡涛(Daniel Hu) 编著
Kubernetes从入门到DevOps企业应用实战
Kubernetes快速入门
[英]奈吉尔·波尔顿(Nigel Poulton)
Kubernetes从入门到DevOps企业应用实战
Kubernetes权威指南:从Docker到Kubernetes实践全接触(第 龚正等 著
龚正
Kubernetes从入门到DevOps企业应用实战
Kubernetes快速入门(第2版)
(英)奈吉尔·波尔顿(Nigel Poulton)
Kubernetes从入门到DevOps企业应用实战
Kubernetes零基础实战
罗剑锋