目录
前言
第1章 认识Kubernetes1
1.1 Kubernetes概述1
1.1.1 Kubernetes的定义和背景1
1.1.2 Kubernetes与Docker3
1.1.3 Kubernetes与云原生4
1.2 Kubernetes 核心概念5
1.2.1 resource—Kubernetes的组成
元素5
1.2.2 Kubernetes object—定义
Kubernetes运行状态10
1.2.3 Pod—实现Kubernetes中容器的
逻辑组合11
1.2.4 RC/RS—控制Pod副本个数12
1.2.5 Deployment—在Kubernetes中
部署应用13
1.2.6 Service—以统一的方式对外
提供服务13
1.2.7 其他核心概念14
1.3 Kubernetes 系统架构15
1.3.1 Control Plane15
1.3.2 Node17
1.3.3 Addons18
1.3.4 kubectl18
1.4 高效学习Kubernetes19
1.4.1 Kubernetes快速学习路线图19
1.4.2 利用本书资源高效学习Kubernetes
(重点必读)19
1.4.3 本书所使用的软件和版本22
第2章 快速构建Kubernetes集群23
2.1 Kubernetes集群规划23
2.2 准备Kubernetes集群节点23
2.2.1 定制VMware虚拟机(实践1)23
2.2.2 小化安装CentOS 8(实践2)24
2.2.3 远程登录与文件传输(实践3)24
2.2.4 ssh远程无密码登录24
2.2.5 Docker安装与使用25
2.3 kubeadm安装与系统配置30
2.4 快速构建Control Plane35
2.5 为Kubernetes增加Node节点38
第3章 Kubernetes核心对象使用44
3.1 使用YAML创建Kubernetes
resource44
3.2 Pod典型使用47
3.3 RC/RS基本操作(实践4)51
3.4 Deployment典型使用(实践5)51
3.5 Service典型使用(实践6)52
第4章 Kubernetes容器编排实践53
4.1 Pod容器调度53
4.2 Pod多容器运行(实践 7)55
4.3 Pod容器数据持久化存储(PersistentVolume)56
4.3.1 安装NFS56
4.3.2 创建pv和pvc58
4.3.3 创建Deployment使用持久化存储60
4.4 Ingress实现统一访问Pod容器
服务62
4.4.1 创建购物网站的Deployment62
4.4.2 创建购物网站的Service64
4.4.3 创建购书网站的Deployment65
4.4.4 创建购书网站的Service66
4.4.5 创建ingress controller66
4.4.6 创建Ingress68
4.4.7 按路径统一访问Pod容器的服务70
4.5 Pod容器自动伸缩(HPA)71
4.5.1 编写HPA YAML文件71
4.5.2 创建监控对象和HPA73
4.5.3 HPA伸缩算法74
4.5.4 HPA自动伸缩测试74
第5章 Kubernetes系统运维与故障
处理78
5.1 Pod容器的高可用实践
(实践8)78
5.2 Kubernetes节点性能数据采集78
5.3 使用k8dash快速监控Kubernetes80
5.4 Kubernetes系统运维常用操作83
5.4.1 增加kubectl节点83
5.4.2 停止Kubernetes组件Pod中的
容器84
5.4.3 重置Kubernetes集群节点85
5.4.4 查看和设置Kubernetes组件的启动
参数85
5.4.5 运行Pod容器命令88
5.4.6 查看Pod容器网卡名89
5.4.7 复制文件到Pod容器89
5.4.8 查看指定进程监听的端口90
5.5 查看Kubernetes日志90
5.5.1 系统日志90
5.5.2 Kubernetes组件日志91
5.5.3 Pod启动信息和容器日志91
5.6 Kubernetes故障处理92
5.6.1 处理故障Pod92
5.6.2 容器故障调试94
第6章 构建Kubernetes高可用集群96
6.1 Kubernetes 高可用集群的架构与
规划96
6.2 构建高可用负载均衡器(Keepalived+LVS)98
6.2.1 构建LB节点99
6.2.2 构建RS节点102
6.2.3 构建Client节点105
6.2.4 测试LB + HA106
6.3 构建基于Keepalived的Kubernetes
高可用集群110
6.3.1 配置Keepalived110
6.3.2 构建Control Plane111
6.3.3 构建Node节点114
6.3.4 Kubernetes 高可用性测试115
第7章 Kubernetes监控与告警 (Prometheus+Grafana)119
7.1 Kubernetes系统组件指标
(Metrics)119
7.2 Prometheus监控Kubernetes125
7.2.1 Prometheus架构和核心概念125
7.2.2 Prometheus 快速部署(kube-prometheus)127
7.2.3 Prometheus 监控机制与配置131
7.2.4 Prometheus 监控 Kubernetes
核心组件140
7.2.5 Prometheus 监控 Kubernetes
指定对象(Exporter)145
7.3 Grafana展示Kubernetes监控
数据152
7.3.1 Grafana 快速访问152
7.3.2 Grafana 展示 Prometheus 数据源
数据(Kubernetes)154
7.3.3 Grafana 展示其他数据源的数据160
7.3.4 Grafana 配置的持久化存储164
7.4 Kubernetes 监控告警171
7.4.1 Prometheus 告警机制171
7.4.2 查看Prometheus 告警171
7.4.3 Prometheus告警规则(Rule)175
7.4.4 配置Prometheus 告警发送邮件182
7.4.5 Grafana 告警配置与邮件通知188
第8章 基于Kubernetes的CI/CD
项目综合实践(GitLab+
Harbor+Jenkins)198
8.1 CI/CD核心概念与基础198
8.2 太空入侵者游戏CI/CD方案
设计199
8.2.1 系统架构与集群规划199
8.2.2 CI/CD开发流程200
8.3 构建太空入侵者游戏开发与测试
环境201
8.3.1 构建承载和测试节点—devt
虚拟机201
8.3.2 构建开发节点—spaceinv容器202
8.3.3 构建代码管理仓库—GitLab205
8.3.4 构建容器镜像仓库—Harbor217
8.3.5 构建持续集成工具—J
展开