书籍详情

云原生应用管理:原理与实践

云原生应用管理:原理与实践

作者:陈显鹭,阚俊宝,匡大虎,卢稼奇 著

出版社:机械工业出版社

出版时间:2020-08-01

ISBN:9787111659495

定价:¥119.00

购买这本书可以去
内容简介
  这是一部从原理与实践角度讲解云原生应用管理的著作,是阿里云容器服务团队工程师多年云原生应用开发与管理经验的总结。详细讲解了Helm、Kustomize、CNAB、Operator等云原生应用管理框架和工具的应用场景、功能和使用,并通过源码讲解了它们的实现原理,同时提供了大量的案例和代码解析,能帮助读者轻松掌握云原生应用的管理。 全书一共16章,分为4个部分: 第一部分(第1~4章) Helm 首先介绍了Helm的发展历程、适用场景、架构设计、工作机制;然后以Chart为例,讲解了Helm的功能和使用方法;最后通过源代码分析了Helm的实现原理。 第二部分(第5~8章) Kustomize 首先介绍了Kustomize的诞生背景、适用场景、工作机制;然后详细讲解了它的功能和使用方法;最后通过源代码分析了它的实现原理。 第三部分(第9~12章) CNAB 首先介绍了CNAB的基本概念、原理和规范;然后以Porter为例,详细讲解了它的功能、用法和实战;最后通过源代码分析了Porter的实现原理,同时讲解了mixin的开发。 第四部分(第13~16章) Operator 首先介绍了Operator的概念、发展和工作原理,然后详细讲解了它的功能、用法、架构、组件和实战,最后通过源代码分析了它的实现原理。
作者简介
  陈显鹭 阿里云容器服务技术专家, CNCF基金会下多个项目的贡献者和维护者,专注于容器技术的编排与基础环境研究。爱好折腾源代码,热爱开源文化并积极参与社区开源项目的研发。 阚俊宝 阿里云容器服务技术专家,专注Kubernetes、Docker、云存储,是阿里云CSI存储核心维护者。 匡大虎 阿里云容器服务技术专家,专注云原生安全,是阿里云容器服务云原生安全核心成员。 卢稼奇 阿里云容器服务高级开发工程师,专注Kubernetes、云原生应用编排、前端技术开发。
目录
Contents?目  录
前言
第1章 什么是Helm 1
1.1 Helm的发展历程 1
1.2 Helm的适用场景 2
1.3 Helm的社区和生态 3
1.4 Helm的架构设计与工作原理 4
1.4.1 Helm Client 4
1.4.2 Tiller 5
1.5 本章小结 5
第2章 Chart 7
2.1 Chart文件结构 7
2.1.1 Chart.yaml 8
2.1.2 Chart license, README notes 9
2.1.3 Chart Dependences 10
2.1.4 template和values 14
2.2 Helm功能初体验 18
2.2.1 前置条件 18
2.2.2 Helm的三大基本概念 18
2.2.3 安装Helm 18
2.2.4 安装第一个Chart 19
2.2.5 查看当前安装实例 21
2.2.6 删除安装的实例 21
2.2.7 Helm后端存储 22
2.3 helm install 23
2.4 Helm 更新与回滚 25
2.4.1 helm upgrade 25
2.4.2 helm history 25
2.4.3 helm rollback 26
2.4.4 一些有用的更新参数 26
2.5 helm repo 26
2.6 创建自己的Chart 28
2.7 Helm Hooks 29
2.7.1 Helm支持的Hooks种类 30
2.7.2 Hooks 与Release 生命周期的关系 30
2.7.3 简单的Hooks示例 31
2.7.4 使用crd-install来定义一个CRD 33
2.7.5 自动删除先前版本的Hooks 33
2.8 Helm插件 34
2.9 Chart测试 36
2.10 Chart模板开发高阶介绍 38
2.10.1 创建第一个template文件 39
2.10.2 给template添加动态变量 41
2.10.3 模板函数与管道 42
2.10.4 逻辑控制 45
2.10.5 变量 51
2.10.6 自定义模板 53
2.10.7 在模板中引用文件 58
2.10.8 创建一个NOTES.txt文件 60
2.11 本章小结 61
第3章 使用Helm部署Wordpress实战 63
3.1 下载Wordpress Chart 63
3.2 Chart.yaml 64
3.3 requirements.yaml 64
3.4 Charts文件夹 65
3.5 template文件夹 65
3.5.1 helper文件 66
3.5.2 NOTES.txt 68
3.5.3 其他文件 69
3.5.4 tests文件 71
3.6 README.md 72
3.7 values.yaml 72
3.8 安装 73
3.9 本章小结 76
第4章 Helm 源码分析 77
4.1 helm install 77
4.1.1 locateChartPath 78
4.1.2 ensureHelmClient 81
4.1.3 InstallCmd Run 81
4.1.4 installReleaseFromChart 83
4.1.5 setupConnection 84
4.1.6 Helm Client install Function 85
4.1.7 返回Release状态信息 87
4.2 Helm Install Server 88
4.2.1 prepareRelease 89
4.2.2 performRelease 90
4.3 Helm update 93
4.3.1 update 命令的定义 93
4.3.2 Update 服务端的实现 94
4.4 helm ls 96
4.4.1 Client 端实现 96
4.4.2 Server端实现 98
4.5 Helm Rollback 100
4.6 Helm delete 102
4.7 Helm 3简介 104
4.8 本章小结 108
第5章 Kustomize入门 109
5.1 Kustomize介绍 109
5.2 Kustomize原理介绍 111
5.3 Kustomize快速入门 113
5.3.1 安装Kustomize 113
5.3.2 通过Kustomize部署helloworld 114
5.4 本章小结 117
第6章 Kustomize详解 118
6.1 Kustomize术语 118
6.2 Kustomize配置详解 121
6.2.1 资源 121
6.2.2 生成器 122
6.2.3 转换器 124
6.3 命令行使用方法 128
6.3.1 命令行使用 128
6.3.2 kustomize build 130
6.3.3 kustomize edit 136
6.3.4 kustomize create 141
6.3.5 kustomize conf?ig 143
6.4 基本用法 147
6.4.1 使用conf?igGeneration 147
6.4.2 使用generatorOptions 149
6.4.3 配置转换器 150
6.4.4 使用变量 153
6.4.5 镜像替换 154
6.4.6 补丁 156
6.5 Kustomize插件 161
6.5.1 插件介绍 162
6.5.2 Exec类型插件 163
6.5.3 Go库文件插件 165
6.6 工作流 169
6.6.1 创建配置仓库 169
6.6.2 配置下发 170
6.6.3 使用共享配置 170
6.7 本章小结 172
第7章 Kustomize实战 173
7.1 示例介绍 173
7.1.1 基础配置 174
7.1.2 测试环境 177
7.1.3 生产环境 180
7.1.4 配置管理 185
7.2 通过插件实现不同环境下部署不同的模板 186
7.2.1 项目介绍 187
7.2.2 插件实现 188
7.2.3 运行插件 191
7.3 本章小结 193
第8章 Kustomize源码分析 194
8.1 Kustomize 执行流程介绍 194
8.2 kustomize build命令解析 196
8.2.1 NewCmdBuild函数解析 197
8.2.2 NewCmdBuildPrune函数详解 198
8.2.3 RunBuild函数详解 199
8.2.4 AccumulateTarget 解析 203
8.2.5 addHashesToNames函数 210
8.2.6 ResolveVars函数 211
8.2.7 computeInventory函数 212
8.3 kustomize edit命令分析 214
8.4 add子命令 215
8.5 set子命令 225
8.6 Fix子命令 228
8.7 remove子命令 229
8.8 kustomize create 命令分析 230
8.9 本章小结 233
第9章 走近CNAB 234
9.1 什么是CNAB 234
9.2 CNAB 基本概念和原理 236
9.3 CNAB规范 238
9.3.1 bundle.json文件格式 239
9.3.2 调用镜像 245
9.3.3 应用包运行规范 246
9.3.4 包格式规范 247
9.4 Duffle和Porter 248
9.4.1 使用Duffle打包Wordpress 248
9.4.2 使用Porter打包Wordpress 250
9.4.3 使用Duffle还是Porter 251
9.5 本章小结 251
第10章 Porter使用详解 252
10.1 Porter快速上手 252
10.1.1 安装Porter 252
10.1.2 创建应用包 253
10.1.3 部署应用 254
10.1.4 更新和卸载应用 255
10.2 创建应用包 255
10.2.1 应用包元数据 257
10.2.2 mixin 257
10.2.3 参数 258
10.2.4 输出 259
10.2.5 校验规则 260
10.2.6 凭据 260
10.2.7 应用包操作 261
10.2.8 自定义操作 263
10.2.9 依赖 263
10.2.10 镜像 263
10.2.11 自定义Dockerf?ile 264
10.3 mixin 265
10.3.1 安装mixin 266
10.3.2 常用mixin介绍 266
10.4 Porter命令详解 270
10.5 OCI仓库与应用分发 276
10.6 使用Porter分发CNAB应用 278
10.6.1 发布应用包 278
10.6.2 复制应用包 280
10.6.3 导出应用包 281
10.7 本章小结 282
第11章 Porter实战 283
11.1 创建基本的应用框架 283
11.1.1 环境准备 283
11.1.2 创建基本的应用框架 284
11.2 支持参数和输出 288
11.3 定义多个操作步骤 291
11.4 发布应用包 295
11.5 使用应用包依赖 298
11.6 本章小结 300
第12章 Porter mixin开发和源码解析 301
12.1 mixin实现原理 301
12.1.1 mixin调用机制 301
12.1.2 mixin API 302
12.2 mixin开发 306
12.2.1 创建mixin项目 306
12.2.2 mixin代码概览 308
12.2.3 实现build命令 312
12.2.4 定义JSON Schema 313
12.2.5 实现参数组装逻辑 316
12.3 Porter build源码解析 320
12.4 Porter install源码解析 329
12.4.1 准备应用包 330
12.4.2 准备和执行依赖 332
12.4.3 执行主应用包操作 336
12.4.4 Docker驱动的运行过程 339
12.5 Porter运行时源码解析 342
12.6 本章小结 346
第13章 全面了解Operator 347
13.1 初识Operator 348
13.1.1 什么是Operator 348
13.1.2 Operator的发展 349
13.1.3 Operator的社区与生态 351
13.2 Operator Framework 352
13.3 Operator 工作原理 354
13.4 本章小结 357
第14章 Operator Framework功能详解 358
14.1 Operator SDK 358
14.1.1 安装Operator SDK CLI 358
14.1.2 使用Operator SDK CLI 360
14.1.3 Operator的作用域 363
14.1.4 Operator SDK生成的代码框架 365
14.1.5 controller-runtime 367
14.1.6 使用Predicates过滤事件 381
14.1.7 Operator SDK的架构演进 383
14.2 Operator Lifecycle Manager 387
14.2.1 OLM组件模型定义 387
14.2.2 OLM结构介绍 389
14.2.3 OLM的安装 390
14.2.4 依赖解析和升级管理 392
14.2.5 operator-registry 395
14.3 Operator Metering 398
14.3.1 Operator Metering基本架构 398
14.3.2 Operator Metering核心组件 400
14.4 本章小结 407
第15章 Operator实战 408
15.1 基于Operator SDK构建Operator 408
15.1.1 生成第一个Operator项目 408
15.1.2 创建自定义资源定义 409
15.1.3 创建Controller 410
15.1.4 Operator的构建和运行 416
15.2 使用Operator Lifecycle Manager 419
15.2.1 构建一个CSV 419
15.2.2 基于Operator Lifecycle Manager测试Operator 423
15.3 部署和使用Operator Metering 425
15.3.1 安装Operator Metering 426
15.3.2 定制化Prometheus Report Queries 426
15.4 本章小结 432
第16章 Operator示例:cert-manager源码解析 433
16.1 cert-manager基本介绍 433
16.2 cert-manager组件架构解析 434
16.3 基于controller-runtime的cainjector架构解析 441
16.3.1 cainjector的启动流程 441
16.3.2 cainjector的Reconcile函数 446
16.4 本章小结 448
猜您喜欢

读书导航