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

您所在的位置:网站首页 metering插件 云原生应用管理:原理与实践

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

#云原生应用管理:原理与实践| 来源: 网络整理| 查看: 265

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3