Kubernetes编程

0
(0)

Kubernetes编程

作者:[美]迈克尔·豪森布拉斯/[美]斯特凡·西曼斯基

出版社:中国电力出版社

原作名:ProgrammingKubernetes

译者:李凡希/任震宇

出版年:2021-6

页数:317

定价:88

装帧:平装

丛书:O'Reilly动物系列(中译本)

ISBN:9787519854799

内容简介
······

如果你打算开发原生Kubernetes应用,本书将成为你最好的向导。本书面向开发者和应用运维管理员介绍如何构建原生Kubernetes应用程序,这类应用可直接通过API服务器查询或更新资源的状态。AWS开发倡导者Michael Hausenblas和Red Hat首席软件工程师Stefan Schimanski将介绍这类应用的特性并向你展示如何编写Kubernetes程序来构建它们。你将学到Kubernetes的基础构件,包括client-go API库以及自定义资源。你只需要具备一些初级的开发知识和系统管理工具和实践经验(包括包管理、Go语言和Git)即可上手。

作者简介
······

Michael Hausenblas is a Developer Advocate at Red Hat. Stefan Schimanski is a Senior Software Engineer at Red Hat.

Stefan Schimanski is a Senior Software Engineer at Red Hat.

目录
······

目录

前言 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

评论 ······

基于k8s 1.15版编写的书,现版本1.24,差了近十个版本,但接口定义是一致的。把它作为云原生k8s平台开发的参考入门书,挺合适的。

整体翻译的还算通畅

翻译尚可,作用蛮大。

基于k8s 1.15版编写的书,现版本1.24,差了近十个版本,但接口定义是一致的。把它作为云原生k8s平台开发的参考入门书,挺合适的。

点击星号评分!

平均分 0 / 5. 投票数: 0

还没有投票!请为他投一票。

推荐阅读

评论 抢沙发

评论前必须登录!

 

登录

找回密码

注册