全新正版未拆封
¥ 26.89 3.1折 ¥ 88 全新
库存2件
作者[美]迈克尔·豪森布拉斯(Michael Hausenblas) 著;李凡希、任震宇 译
出版社中国电力出版社
出版时间2021-06
版次1
装帧平装
上书时间2024-08-03
Michael Hausenblas是Amazon Web Service容器开发领域的倡导者。他拥有大规模数据处理和容器编排方面的经验,在倡导和实施W3C和IETF标准化方面有着丰富的经验。
Stefan Schimanski是Red Hat的Go、Kubernetes和Open-Shift首席软件工程师,他专注于Kubernetes API服务器及其在自定义资源定义、API Machinery方面的实现,以及Kubernetes预发布仓库的管理
目录
前言 .1
第1 章 概论 .7
1.1 什么是Kubernetes 编程? .7
1.2 一个实际的例子 10
1.3 扩展模式 11
1.4 控制器和Operator 12
1.4.1 控制循环. 13
1.4.2 事件 14
1.4.3 边沿触发与水平触发 17
1.4.4 改变集群对象或外部系统状态 20
1.4.5 乐观并发. 23
1.4.6 Operator 26
1.5 小结 28
第2 章 Kubernetes API 基础 .30
2.1 API 服务器 30
2.1.1 API 服务器的HTTP 接口 31
2.1.2 API 术语 . 33
2.1.3 Kubernetes API 版本 . 36
2.1.4 声明式状态管理 . 37
2.2 通过命令行使用API . 38
2.3 API 服务器是如何处理请求的 43
2.4 小结 47
第3 章 client-go 基础 49
3.1 代码仓库 49
3.1.1 客户端库. 49
3.1.2 Kubernetes API 类型 . 51
3.1.3 API Machinery . 52
3.1.4 创建并使用客户端对象 53
3.1.5 版本与兼容性 56
3.1.6 API 版本与兼容性保证 59
3.2 Go 语言中的Kubernetes 对象 62
3.2.1 TypeMeta 63
3.2.2 ObjectMeta 67
3.2.3 规格与状态 68
3.3 客户端集合 . 68
3.3.1 状态子资源:UpdateStatus 71
3.3.2 列表与删除 71
3.3.3 Watch 72
3.3.4 客户端扩展 73
3.3.5 客户端选项 73
3.4 Informer 和缓存 75
3.5 深入API Machinery 83
3.5.1 型别 83
3.5.2 资源 83
3.5.3 REST 映射 . 84
3.5.4 Scheme 86
3.6 Vendor 机制 88
3.6.1 glide 88
3.6.2 dep . 89
3.6.3 Go 模块 90
3.7 小结 92
第4 章 使用自定义资源 93
4.1 服务发现信息 95
4.2 类型定义 97
4.3 自定义资源的高级功能 . 100
4.3.1 自定义资源合法性验证 100
4.3.2 短名字与类别 103
4.3.3 打印列 104
4.3.4 子资源 106
4.4 开发者眼中的自定义资源 . 111
4.4.1 动态客户端 . 112
4.4.2 强类型客户端 114
4.4.3 Operator SDK 和Kubebuilder 的controller-runtime 客户端 121
4.5 小结 . 123
第5 章 自动代码生成 124
5.1 为何需要代码生成器 124
5.2 调用代码生成器 125
5.3 通过标签控制代码生成器行为 127
5.3.1 全局标签 128
5.3.2 局部标签 129
5.3.3 deepcopy-gen 标签 131
5.3.4 runtime.Object 与DeepCopyObject 131
5.3.5 client-gen 标签 133
5.3.6 informer-gen 和lister-gen 135
5.4 小结 . 136
第6 章 编写Operator 的方案 137
6.1 准备工作 138
6.2 基于sample-controller 138
6.2.1 引导 139
6.2.2 业务逻辑 140
6.3 Kubebuilder . 148
6.3.1 引导 149
6.3.2 业务逻辑 155
6.4 Operator SDK . 160
6.4.1 引导 161
6.4.2 业务逻辑 163
6.5 其他方案 167
6.6 应用和未来的方向 168
6.7 小结 . 169
第7 章 发布控制器和Operator 170
7.1 生命周期管理和打包 170
7.1.1 打包:挑战 . 171
7.1.2 Helm 172
7.1.3 Kustomize 174
7.1.4 其他打包方法 176
7.1.5 打包的最佳实践 177
7.1.6 生命周期管理 178
7.2 准生产部署 179
7.2.1 将权限设置正确 179
7.2.2 自动构建与测试 183
7.2.3 自定义控制器和可观测性 184
7.3 小结 . 187
第8 章 自定义API 服务器 . 189
8.1 自定义API 服务器的适用场景 189
8.2 示例:一个披萨店 192
8.3 架构:聚合 193
8.3.1 API 服务 195
8.3.2 自定义API 服务器的内部结构 198
8.3.3 委托身份认证和信任机制 200
8.3.4 委托授权 201
8.4 开发自定义API 服务器 . 204
8.4.1 选项、配置模式和启动基础设施 204
8.4.2 第一次启动 . 213
8.4.3 内部类型和转换 214
8.4.4 编写API 类型 218
8.4.5 转换 220
8.4.6 默认值处理 . 224
8.4.7 双程测试 226
8.4.8 验证 228
8.4.9 注册表与策略 231
8.4.10 安装API 237
8.4.11 准入 . 242
8.5 部署自定义API 服务器 . 253
8.5.1 部署清单文件 254
8.5.2 设置RBAC . 257
8.5.3 不安全地运行自定义API 服务器 259
8.5.4 证书与信任 . 262
8.5.5 共享etcd 265
8.6 小结 . 266
第9 章 自定义资源进阶 . 268
9.1 自定义资源版本 268
9.1.1 改进披萨餐厅 269
9.1.2 转换Webhook 架构 273
9.1.3 实现转换Webhook . 277
9.1.4 搭建HTTPS 服务器 278
9.1.5 部署转换Webhook . 285
9.1.6 观察实际转换过程 286
9.2 准入Webhook . 290
9.2.1 餐馆示例中的准入需求 291
9.2.2 准入Webhook 架构 292
9.2.3 注册准入Webhook . 295
9.2.4 实现准入Webhook . 296
9.2.5 准入Webhook 实战 302
9.3 结构化Schema 与CRD 的未来 . 304
9.3.1 结构化Schema . 305
9.3.2 剪裁或保留不能识别的字段 307
9.3.3 控制剪裁 308
9.3.4 IntOrString 和RawExtensions 310
9.3.5 默认值 311
9.4 小结 . 313
附录 资源 . 315
作者介绍 319
封面介绍 319
— 没有更多了 —
以下为对购买帮助不大的评价