- ISBN:9787115640093
- 装帧:平装-胶订
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:328
- 出版时间:2024-07-01
- 条形码:9787115640093 ; 978-7-115-64009-3
本书特色
全面系统讲解Kubernetes的基础知识和运维管理方法
每个知识点都配备操作示范,方便上手
结构清晰,循序渐进,言简意赅、案例选取具有实用性和针对性
选用Kubernetes 1.25.4
内容简介
本书全面、系统地讲解Kubernetes的基础知识和运维管理方法。本书共9个项目,包括从Docker转向Kubernetes、部署Kubernetes集群、熟悉Kubernetes基本操作、部署和运行应用程序、发布应用程序、管理存储和配置信息、Kubernetes调度、高效管理应用程序的部署,以及持续集成和持续部署。
本书结构清晰,在内容编写方面注意难点分散、循序渐进,在文字叙述方面注意言简意赅、突出重点,在实例选取方面注意实用性和针对性。为强化实践性和可操作性,本书为每个知识点都配备了相应的操作示范,便于读者快速上手。
本书可作为院校计算机相关专业、相关课程的教材,也可作为软件开发人员、IT实施和运维工程师学习Kubernetes云原生技术的参考,还可作为相关课程的培训教材。
目录
【课堂学习目标】 2
知识目标 2
技能目标 2
素养目标 2
任务1.1 认识与安装Docker 2
任务要求 2
相关知识 2
1.1.1 应用程序部署方式的演变 2
1.1.2 什么是Docker 4
1.1.3 Docker架构 4
1.1.4 Docker版本 5
任务实现 6
任务1.1.1 安装Docker Engine 6
任务1.1.2 了解docker命令的基本用法 8
任务1.1.3 运行一个容器 10
任务1.2 掌握Docker的基本操作方法 10
任务要求 10
相关知识 11
1.2.1 Docker镜像基础知识 11
1.2.2 Docker容器基础知识 13
1.2.3 Docker注册中心与仓库 15
任务实现 17
任务1.2.1 镜像和容器的基本操作 17
任务1.2.2 自建Docker注册中心 19
任务1.3 构建镜像并将应用程序容器化 20
任务要求 20
相关知识 21
1.3.1 镜像的构建 21
1.3.2 应用程序镜像的内容 23
1.3.3 应用程序容器化的基本步骤 23
任务实现 将应用程序容器化 24
任务1.4 转向Kubernetes 28
任务要求 28
相关知识 28
1.4.1 什么是Kubernetes 28
1.4.2 为什么要使用Kubernetes 29
1.4.3 Kubernetes的主要特性 30
1.4.4 Kubernetes与云原生 30
任务实现 31
任务1.4.1 了解Kubernetes的应用 31
任务1.4.2 了解Kubernetes在国内企业中的实际应用 32
项目小结 33
课后练习 34
项目实训 35
实训1 安装Docker Engine并进行镜像和容器的基本操作 35
实训2 对Node.js Web应用程序进行容器化 35
项目2 部署Kubernetes集群 36
【课堂学习目标】 36
知识目标 36
技能目标 36
素养目标 36
任务2.1 创建Kubernetes集群 36
任务要求 36
相关知识 37
2.1.1 Kubernetes集群的组件 37
2.1.2 控制平面组件 38
2.1.3 工作节点组件 39
2.1.4 功能插件 40
2.1.5 Kubernetes部署方式 40
2.1.6 kubeadm工具 41
2.1.7 高可用Kubernetes集群 41
任务实现 42
任务2.1.1 规划Kubernetes集群 42
任务2.1.2 准备Kubernetes集群安装环境 43
任务2.1.3 部署Kubernetes集群节点 47
任务2.1.4 安装Pod网络插件 50
任务2.1.5 测试Kubernetes集群 52
任务2.1.6 使用containerd命令行工具crictl 52
任务2.2 部署和使用Kubernetes Dashboard 53
任务要求 53
相关知识 53
2.2.1 Kubernetes集群资源管理方式 53
2.2.2 Kubernetes Dashboard的功能 54
任务实现 54
任务2.2.1 安装Kubernetes Dashboard 54
任务2.2.2 使用Kubernetes Dashboard 56
项目小结 59
课后练习 60
项目实训 61
实训1 使用kubeadm工具部署三节点Kubernetes集群 61
实训2 安装和使用Kubernetes Dashboard 61
项目3 熟悉Kubernetes基本操作 62
【课堂学习目标】 62
知识目标 62
技能目标 62
素养目标 62
任务3.1 理解和使用Kubernetes对象 62
任务要求 62
相关知识 63
3.1.1 什么是Kubernetes对象 63
3.1.2 Kubernetes对象的规约和状态 64
3.1.3 描述Kubernetes对象 64
3.1.4 Kubernetes对象的管理方法 65
3.1.5 对象的名称和UID 66
3.1.6 标签和注解 67
3.1.7 名称空间 68
任务实现 69
任务3.1.1 创建Kubernetes对象 69
任务3.1.2 操作对象的标签 71
任务3.1.3 操作名称空间 72
任务3.2 使用kubectl命令 73
任务要求 73
相关知识 73
3.2.1 kubectl命令的基本用法 73
3.2.2 kubectl常用子命令 74
3.2.3 kubectl命令支持的资源类型 75
3.2.4 kubectl命令支持的输出格式 76
任务实现 76
任务3.2.1 熟悉kubectl命令的用法 76
任务3.2.2 使用kubectl命令辅助生成YAML配置文件 77
任务3.3 创建和管理Pod 79
任务要求 79
相关知识 79
3.3.1 什么是Pod 79
3.3.2 Pod与容器 79
3.3.3 Pod的定义 81
3.3.4 Pod的生命周期 82
3.3.5 Pod的健康检查机制 83
任务实现 84
任务3.3.1 创建多容器Pod 84
任务3.3.2 为Pod及其容器设置资源配额 86
任务3.3.3 实现Pod容器的健康检查 88
项目小结 89
课后练习 90
项目实训 91
实训1 操作指定名称空间中对象的标签 91
实训2 创建一个多容器Pod并进行测试 91
项目4 部署和运行应用程序 92
【课堂学习目标】 92
知识目标 92
技能目标 92
素养目标 92
任务4.1 使用Deployment运行无状态应用程序 93
任务要求 93
相关知识 93
4.1.1 工作负载资源与控制器 93
4.1.2 ReplicationController、ReplicaSet和Deployment 94
4.1.3 Deployment的应用场景 94
4.1.4 Deployment的基本用法 95
任务实现 95
任务4.1.1 创建Deployment 95
任务4.1.2 测试Deployment的自动修复功能 99
任务4.1.3 更新Deployment 99
任务4.1.4 回滚Deployment 101
任务4.1.5 暂停、恢复Deployment的更新 103
任务4.1.6 扩缩容Deployment 104
任务4.2 使用DaemonSet部署集群守护进程集 105
任务要求 105
相关知识 105
4.2.1 什么是DaemonSet 105
4.2.2 DaemonSet的应用场景 105
任务实现 106
任务4.2.1 使用DaemonSet部署日志收集守护进程集 106
任务4.2.2 管理DaemonSet部署的集群守护进程集 109
任务4.3 运行一次性任务与定时任务 110
任务要求 110
相关知识 111
4.3.1 Job与一次性任务 111
4.3.2 CronJob与定时任务 111
任务实现 112
任务4.3.1 使用Job运行一次性任务 112
任务4.3.2 使用CronJob运行定时任务 114
项目小结 115
课后练习 116
项目实训 116
实训1 使用Deployment运行Apache服务 116
实训2 使用DaemonSet在所有工作节点上部署nginx 117
项目5 发布应用程序 118
【课堂学习目标】 118
知识目标 118
技能目标 118
素养目标 119
任务5.1 使用Service发布应用程序 119
任务要求 119
相关知识 119
5.1.1 什么是Service 119
5.1.2 通过Endpoints理解Service的工作机制 120
5.1.3 Service的负载均衡机制 123
5.1.4 Service的服务发现机制 125
5.1.5 定义Service 126
5.1.6 Service类型 126
5.1.7 无头Service 128
5.1.8 多端口Service 129
任务实现 129
任务5.1.1 验证Kubernetes的服务发现机制 129
任务5.1.2 使用Service对外发布集群中的应用程序 130
任务5.1.3 使用Service发布前后端应用程序 132
任务5.2 使用Ingress发布应用程序 136
任务要求 136
相关知识 137
5.2.1 什么是Ingress 137
5.2.2 定义Ingress 138
5.2.3 什么是Ingress控制器 138
任务实现 139
任务5.2.1 部署nginx Ingress控制器 139
任务5.2.2 使用Ingress对外发布应用程序 142
任务5.3 实现灰度发布与蓝绿发布 146
任务要求 146
相关知识 146
5.3.1 什么是灰度发布 146
5.3.2 什么是蓝绿发布 147
5.3.3 Kubernetes的灰度发布和蓝绿发布解决方案 148
5.3.4 nginx Ingress的灰度发布和蓝绿发布方法 148
任务实现 149
任务5.3.1 使用nginx Ingress实现灰度发布 149
任务5.3.2 使用nginx Ingress实现蓝绿发布 154
项目小结 155
课后练习 156
项目实训 157
实训1 使用Service发布Apache服务并考察Service工作机制 157
实训2 部署nginx Ingress控制器并使用Ingress发布Apache服务 157
项目6 管理存储和配置信息 158
【课堂学习目标】 158
知识目标 158
技能目标 158
素养目标 159
任务6.1 配置和使用基本存储 159
任务要求 159
相关知识 159
6.1.1 什么是卷 159
6.1.2 卷的类型 159
任务实现 160
任务6.1.1 使用EmptyDir卷存储数据 160
任务6.1.2 使用HostPath卷挂载宿主机文件 161
任务6.1.3 使用NFS卷挂载NFS共享目录 163
任务6.2 配置和使用持久卷 165
任务要求 165
相关知识 165
6.2.1 PV与PVC的持久化存储机制 165
6.2.2 PV的定义 166
6.2.3 PVC的定义 168
6.2.4 PV和PVC的生命周期 169
6.2.5 StorageClass 169
任务实现 172
任务6.2.1 创建基于NFS的PV 172
任务6.2.2 基于PVC使用PV 173
任务6.2.3 基于StorageClass实现动态卷制备 175
任务6.3 管理配置信息和敏感信息 180
任务要求 180
相关知识 180
6.3.1 什么是ConfigMap 180
6.3.2 创建ConfigMap 180
6.3.3 使用ConfigMap 182
6.3.4 什么是Secret 183
6.3.5 创建Secret 184
6.3.6 使用Secret 185
任务实现 186
任务6.3.1 使用ConfigMap为Tomcat提供配置文件 186
任务6.3.2 使用Secret为MongoDB提供配置文件 188
项目小结 189
课后练习 190
项目实训 191
实训1 通过PVC使用基于NFS的PV 191
实训2 使用默认StorageClass基于NFS实现动态卷制备 191
项目7 Kubernetes调度 192
【课堂学习目标】 192
知识目标 192
技能目标 192
素养目标 192
任务7.1 使用StatefulSet运行有状态应用程序 193
任务要求 193
相关知识 193
7.1.1 什么是StatefulSet 193
7.1.2 StatefulSet的特点 194
7.1.3 StatefulSet的组件 194
任务实现 196
任务7.1.1 使用StatefulSet部署MySQL主从集群 196
任务7.1.2 扩缩容StatefulSet 203
任务7.2 实现水平自动扩缩容 204
任务要求 204
相关知识 204
7.2.1 什么是HPA 204
7.2.2 如何定义HPA 205
7.2.3 什么是Metrics Server 206
任务实现 207
任务7.2.1 部署Metrics Server 207
任务7.2.2 通过HPA实现nginx的自动扩缩容 209
任务7.3 管理Pod的调度 212
任务要求 212
相关知识 213
7.3.1 Kubernetes调度概述 213
7.3.2 Pod的定向调度 213
7.3.3 亲和性与反亲和性调度 214
7.3.4 污点与容忍度 217
任务实现 219
任务7.3.1 将应用程序部署在特定的节点上 219
任务7.3.2 将同一应用程序部署到不同的节点上 220
任务7.3.3 将关联的应用程序部署到同一节点上 221
任务7.3.4 示范污点和容忍度的使用 223
项目小结 224
课后练习 225
项目实训 226
实训1 使用StatefulSet运行nginx并进行扩缩容 226
实训2 演示通过污点和容忍度设置驱逐Pod 227
项目8 高效管理应用程序的部署 228
【课堂学习目标】 228
知识目标 228
技能目标 228
素养目标 228
任务8.1 使用Helm简化应用程序的部署和管理 229
任务要求 229
相关知识 229
8.1.1 什么是Helm 229
8.1.2 Helm是如何工作的 229
8.1.3 Chart结构 230
8.1.4 Helm的基本用法 231
任务实现 232
任务8.1.1 安装和配置Helm 232
任务8.1.2 熟悉Helm的基本操作 233
任务8.1.3 使用Helm在Kubernetes中部署Kafka 238
任务8.2 使用Kustomize定制应用程序的部署配置 241
任务要求 241
相关知识 242
8.2.1 Kustomize的特性和应用场景 242
8.2.2 Kustomization文件 242
8.2.3 Kustomize的基本用法 244
任务实现 245
任务8.2.1 使用Kustomize管理Secret 245
任务8.2.2 为Kubernetes对象设置贯穿性字段 246
任务8.2.3 使用Kustomize组合Kubernetes资源 248
任务8.2.4 使用Kustomize定制Kubernetes资源 249
任务8.2.5 使用Kustomize管理不同环境的应用程序配置 251
项目小结 253
课后练习 254
项目实训 254
实训1 使用Helm在Kubernetes中部署MongoDB 254
实训2 使用Kustomize管理不同环境的应用程序配置 255
项目9 持续集成和持续部署 256
【课堂学习目标】 256
知识目标 256
技能目标 256
素养目标 257
任务9.1 在Kubernetes中部署开发的应用程序 257
任务要求 257
相关知识 257
9.1.1 将应用程序部署到Kubernetes的基本流程 257
9.1.2 开源的企业级Docker Registry项目Harbor 258
任务实现 258
任务9.1.1 基于Harbor自建企业级Docker注册中心 258
任务9.1.2 在Kubernetes集群中使用来自Harbor的镜像 262
任务9.1.3 将开发的应用程序部署到Kubernetes 264
任务9.2 搭建云原生应用程序的CI CD平台 268
任务要求 268
相关知识 269
9.2.1 DevOps的概念 269
9.2.2 CI CD的概念 269
9.2.3 CI CD的主要工具 270
9.2.4 CI CD平台的组建思路 270
任务实现 271
任务9.2.1 规划CI CD平台 271
任务9.2.2 部署GitLab服务器 271
任务9.2.3 部署Jenkins服务器 275
任务9.2.4 通过Jenkins集中管理凭据 279
任务9.3 使用Jenkins的Maven项目实施CI CD 281
任务要求 281
相关知识 281
9.3.1 Jenkins的项目类型 281
9.3.2 Maven项目的CI CD流程 282
任务实现 282
任务9.3.1 准备Maven项目的实施环境 282
任务9.3.2 新建Maven项目实施CI CD 284
任务9.3.3 通过GitLab自动触发项目构建和部署 289
任务9.4 使用Jenkins的流水线项目实施CI CD 292
任务要求 292
相关知识 293
9.4.1 Jenkins的流水线语法 293
9.4.2 在Jenkins中使用流水线 294
任务实现 294
任务9.4.1 新建流水线项目实施CI CD 294
任务9.4.2 实施代码分支的CI CD 297
任务9.5 在Kubernetes中动态创建代理节点实施CI CD 304
任务要求 304
相关知识 304
9.5.1 Jenkins的主节点和代理节点 304
9.5.2 在Kubernetes中使用Pod作为代理节点 305
任务实现 305
任务9.5.1 在Jenkins中配置Pod代理 305
任务9.5.2 新建Jenkins项目测试Pod代理的动态创建 309
项目小结 312
课后练习 313
项目实训 314
实训1 手动将Python应用程序部署到Kubernetes 314
实训2 搭建云原生应用程序的CI CD平台 315
实训3 使用Jenkins的流水线项目实施CI CD 315
作者简介
王雅静,男,副教授,山西曲沃人,现任山西国际商务职业学院副院长,山西省电子与信息教指委委员、山西省中国特色学徒制专委会委员。
近几年,发表论文十余篇,参编教材6本。其中SCI论文一篇,核心期刊发表论文2篇、主编十四五国家规划教材一本,山西省级规划教材一本。2023年指导学生参加山西省职业院校职业技能大赛获云计算赛项一等奖。
-
当代中国政府与政治(新编21世纪公共管理系列教材)
¥33.6¥48.0 -
落洼物语
¥8.7¥28.0 -
中国当代文学名篇选读
¥19.1¥53.0 -
中医基础理论
¥50.7¥59.0 -
北大人文课(平装)
¥13.9¥45.0 -
宪法-第二版
¥12.2¥29.0 -
当代中国政府与政治 第二版
¥51.0¥68.0 -
EPLAN电气设计
¥29.9¥39.8 -
闯进数学世界――探秘历史名题
¥21.3¥32.8 -
企业法务教程
¥34.8¥49.0 -
习近平新时代中国特色社会主义思想概论
¥18.2¥26.0 -
金融学
¥29.9¥49.0 -
计算机操作系统教程(第4版)(清华大学计算机系列教材)
¥31.9¥49.0 -
三国史
¥27.5¥50.0 -
陶瓷坯釉料制备技术/高职高专材料工程技术专业
¥37.4¥45.0 -
陶瓷工艺技术
¥41.7¥49.0 -
飞机总体设计
¥46.8¥78.0 -
陶瓷工艺学/焦宝祥
¥41.7¥49.0 -
古代汉语(第四册)
¥16.1¥35.0 -
编辑审稿实务教程
¥35.1¥45.0