书籍详情
Kubernetes Operator开发进阶
作者:胡涛(Daniel Hu)编著
出版社:机械工业出版社
出版时间:2023-01-01
ISBN:9787111716150
定价:¥89.00
购买这本书可以去
内容简介
本书详细讲解Operator开发过程中所涉及的各个知识点,从简单的Operator示例应用入手,帮助读者快速上手Operator的开发流程,接着深入分析client-go、Deployment控制器等的源码,通过一个进阶应用的开发过程详细介绍Operator开发的各方面知识。通过本书的学习,读者能够轻松掌握Operator的开发技巧,深入理解Operator的底层原理,进而在日常工作中更好地利用Operator实现各种复杂的应用治理逻辑的开发。
作者简介
暂缺《Kubernetes Operator开发进阶》作者简介
目录
目录
推荐序1
推荐序2
前言
第一篇 入 门
第1章 了解Kubernetes 2
1.1 初识Kubernetes 2
1.2 Kubernetes集群的部署 3
1.2.1 Docker的安装 4
1.2.2 Kind工具介绍 6
1.2.3 使用Kind快速搭建Kubernetes环境 6
1.2.4 使用Kind搭建多节点Kubernetes集群环境 7
1.2.5 Kind用法进阶 10
1.3 Kubernetes集群的基本操作 12
1.3.1 示例项目介绍 12
1.3.2 基础操作演示 13
1.3.3 小结 18
1.4 Kubernetes的核心概念 18
1.4.1 节点 18
1.4.2 命名空间 19
1.4.3 容器组 21
1.4.4 副本集 22
1.4.5 部署 23
1.4.6 服务 24
1.5 Kubernetes的发展历史 26
1.6 本章小结 27
第2章 开始Operator开发 28
2.1 理解控制器模式 28
2.1.1 生活中的控制器 28
2.1.2 Kubernetes中的控制器 29
2.2 理解Operator模式 30
2.3 Operator开发环境准备 31
2.4 Kubebuilder的安装配置 31
2.5 从Application Operator Demo开始 32
2.5.1 创建项目 33
2.5.2 添加API 35
2.5.3 CRD实现 38
2.5.4 CRD部署 39
2.5.5 CR部署 40
2.5.6 Controller实现 41
2.5.7 启动Controller 42
2.5.8 部署Controller 44
2.5.9 资源清理 46
2.6 Operator的发展历史 46
2.6.1 Operator概念的提出 46
2.6.2 第一个Operator程序 47
2.6.3 Operator的崛起 47
2.7 本章小结 48
第二篇 进 阶
第3章 Kubernetes API介绍 50
3.1 认识Kubernetes API 50
3.2 使用Kubernetes API 50
3.2.1 Curl方式访问API 50
3.2.2 kubectl raw方式访问API 53
3.3 理解GVK:组、版本与类型 54
3.4 本章小结 54
第4章 理解client-go 55
4.1 client-go项目介绍 55
4.1.1 client-go的代码库 55
4.1.2 client-go的包结构 56
4.1.3 client-go的版本规则 56
4.1.4 获取client-go 57
4.2 client-go使用示例 57
4.2.1 client-go集群内认证配置 57
4.2.2 client-go集群外认证配置 60
4.2.3 client-go操作Deployment 63
4.3 本章小结 67
第5章 client-go源码分析 68
5.1 client-go源码概览 68
5.1.1 关于client-go源码版本 68
5.1.2 client-go模块概览 69
5.2 WorkQueue源码分析 71
5.2.1 普通队列Queue的实现 71
5.2.2 延时队列DelayingQueue的实现 74
5.2.3 限速队列RateLimitingQueue的实现 79
5.2.4 小结 82
5.3 DeltaFIFO源码分析 83
5.3.1 Queue接口与DeltaFIFO的实现 83
5.3.2 queueActionLocked()方法的逻辑 85
5.3.3 Pop()方法和Replace()方法的逻辑 86
5.4 Indexer和ThreadSafeStore 89
5.4.1 Indexer接口和cache的实现 89
5.4.2 ThreadSafeStore的实现 91
5.4.3 各种Index方法的实现 94
5.5 ListerWatcher 95
5.5.1 ListWatch对象的初始化 95
5.5.2 ListerWatcher接口 97
5.5.3 List-Watch与HTTP chunked 98
5.6 Reflector 102
5.6.1 Reflector的启动过程 102
5.6.2 核心方法:Reflector.ListAndWatch() 102
5.6.3 核心方法:Reflector.watchHandler() 106
5.6.4 Reflector的初始化 108
5.6.5 小结 108
5.7 Informer 109
5.7.1 Informer就是Controller 109
5.7.2 SharedIndexInformer对象 113
5.7.3 sharedProcessor对象 116
5.7.4 关于SharedInformerFactory 119
5.7.5 小结 121
5.8 本章小结 122
第6章 项目核心依赖包分析 123
6.1 API项目 123
6.2 apimachinery项目 124
6.3 controller-runtime项目 125
6.4 本章小结 126
第7章 Operator开发进阶 127
7.1 进阶项目设计 127
7.2 准备application-operator项目 127
7.2.1 创建新项目 127
7.2.2 项目基础结构分析 128
7.3 定义Application资源 132
7.3.1 添加新API 132
7.3.2 自定义新API 133
7.4 实现Application Controller 134
7.4.1 实现主调谐流程 134
7.4.2 实现Deployment调谐流程 137
7.4.3 实现Service调谐流程 140
7.4.4 设置RBAC权限 142
7.4.5 过滤调谐事件 146
7.4.6 资源别名 150
7.5 使用Webhook 151
7.5.1 Kubernetes API访问控制 151
7.5.2 Admission Webhook介绍 152
7.5.3 Admission Webhook的实现 152
7.5.4 cert-manager部署 154
7.5.5 Webhook部署运行 155
7.5.6 Webhook测试 157
7.6 API多版本支持 159
7.6.1 实现V2版本API 159
7.6.2 多版本API部署
推荐序1
推荐序2
前言
第一篇 入 门
第1章 了解Kubernetes 2
1.1 初识Kubernetes 2
1.2 Kubernetes集群的部署 3
1.2.1 Docker的安装 4
1.2.2 Kind工具介绍 6
1.2.3 使用Kind快速搭建Kubernetes环境 6
1.2.4 使用Kind搭建多节点Kubernetes集群环境 7
1.2.5 Kind用法进阶 10
1.3 Kubernetes集群的基本操作 12
1.3.1 示例项目介绍 12
1.3.2 基础操作演示 13
1.3.3 小结 18
1.4 Kubernetes的核心概念 18
1.4.1 节点 18
1.4.2 命名空间 19
1.4.3 容器组 21
1.4.4 副本集 22
1.4.5 部署 23
1.4.6 服务 24
1.5 Kubernetes的发展历史 26
1.6 本章小结 27
第2章 开始Operator开发 28
2.1 理解控制器模式 28
2.1.1 生活中的控制器 28
2.1.2 Kubernetes中的控制器 29
2.2 理解Operator模式 30
2.3 Operator开发环境准备 31
2.4 Kubebuilder的安装配置 31
2.5 从Application Operator Demo开始 32
2.5.1 创建项目 33
2.5.2 添加API 35
2.5.3 CRD实现 38
2.5.4 CRD部署 39
2.5.5 CR部署 40
2.5.6 Controller实现 41
2.5.7 启动Controller 42
2.5.8 部署Controller 44
2.5.9 资源清理 46
2.6 Operator的发展历史 46
2.6.1 Operator概念的提出 46
2.6.2 第一个Operator程序 47
2.6.3 Operator的崛起 47
2.7 本章小结 48
第二篇 进 阶
第3章 Kubernetes API介绍 50
3.1 认识Kubernetes API 50
3.2 使用Kubernetes API 50
3.2.1 Curl方式访问API 50
3.2.2 kubectl raw方式访问API 53
3.3 理解GVK:组、版本与类型 54
3.4 本章小结 54
第4章 理解client-go 55
4.1 client-go项目介绍 55
4.1.1 client-go的代码库 55
4.1.2 client-go的包结构 56
4.1.3 client-go的版本规则 56
4.1.4 获取client-go 57
4.2 client-go使用示例 57
4.2.1 client-go集群内认证配置 57
4.2.2 client-go集群外认证配置 60
4.2.3 client-go操作Deployment 63
4.3 本章小结 67
第5章 client-go源码分析 68
5.1 client-go源码概览 68
5.1.1 关于client-go源码版本 68
5.1.2 client-go模块概览 69
5.2 WorkQueue源码分析 71
5.2.1 普通队列Queue的实现 71
5.2.2 延时队列DelayingQueue的实现 74
5.2.3 限速队列RateLimitingQueue的实现 79
5.2.4 小结 82
5.3 DeltaFIFO源码分析 83
5.3.1 Queue接口与DeltaFIFO的实现 83
5.3.2 queueActionLocked()方法的逻辑 85
5.3.3 Pop()方法和Replace()方法的逻辑 86
5.4 Indexer和ThreadSafeStore 89
5.4.1 Indexer接口和cache的实现 89
5.4.2 ThreadSafeStore的实现 91
5.4.3 各种Index方法的实现 94
5.5 ListerWatcher 95
5.5.1 ListWatch对象的初始化 95
5.5.2 ListerWatcher接口 97
5.5.3 List-Watch与HTTP chunked 98
5.6 Reflector 102
5.6.1 Reflector的启动过程 102
5.6.2 核心方法:Reflector.ListAndWatch() 102
5.6.3 核心方法:Reflector.watchHandler() 106
5.6.4 Reflector的初始化 108
5.6.5 小结 108
5.7 Informer 109
5.7.1 Informer就是Controller 109
5.7.2 SharedIndexInformer对象 113
5.7.3 sharedProcessor对象 116
5.7.4 关于SharedInformerFactory 119
5.7.5 小结 121
5.8 本章小结 122
第6章 项目核心依赖包分析 123
6.1 API项目 123
6.2 apimachinery项目 124
6.3 controller-runtime项目 125
6.4 本章小结 126
第7章 Operator开发进阶 127
7.1 进阶项目设计 127
7.2 准备application-operator项目 127
7.2.1 创建新项目 127
7.2.2 项目基础结构分析 128
7.3 定义Application资源 132
7.3.1 添加新API 132
7.3.2 自定义新API 133
7.4 实现Application Controller 134
7.4.1 实现主调谐流程 134
7.4.2 实现Deployment调谐流程 137
7.4.3 实现Service调谐流程 140
7.4.4 设置RBAC权限 142
7.4.5 过滤调谐事件 146
7.4.6 资源别名 150
7.5 使用Webhook 151
7.5.1 Kubernetes API访问控制 151
7.5.2 Admission Webhook介绍 152
7.5.3 Admission Webhook的实现 152
7.5.4 cert-manager部署 154
7.5.5 Webhook部署运行 155
7.5.6 Webhook测试 157
7.6 API多版本支持 159
7.6.1 实现V2版本API 159
7.6.2 多版本API部署
猜您喜欢