暂无商品咨询信息 [发表商品咨询]
本书旨在帮助你更好地理解编排系统的基本组成部分。无论你是DevOps工程师、站点可靠性工程师(SRE)还是软件工程师,今天的许多技术看起来可能像一个“黑箱”。你只需要将应用部署到云端,接着神奇的“事情”就会发生。本书分为5部分,共13章。第1部分介绍了Cube调度器的思维模型,并搭建了一个基础的代码框架,后续的章节将在此框架上进行详细实现。第2部分实现了工作组件所需的概念。第3部分实现了管理组件所需的概念。第4部分指导读者重构初期实现的两个组件。第5部分实现了一个命令行接口,让读者能够操作调度器。
第I部分 导论
第1章 编排器概述 2
1.1 为什么从零开始实现一个编排器 2
1.2 苦乐参半的往日时光 3
1.3 什么是容器,它与虚拟机有何不同 4
1.4 什么是编排器 6
1.5 编排系统的组件 6
1.5.1 任务 7
1.5.2 作业 7
1.5.3 调度器 8
1.5.4 管理器 8
1.5.5 工作节点 8
1.5.6 集群 9
1.5.7 命令行接口 9
1.6 认识Cube 11
1.7 本书将使用哪些工具 12
1.8 关于硬件 13
1.9 本书未涉及的内容 15
1.9.1 分布式计算 15
1.9.2 服务发现 15
1.9.3 高可用性 15
1.9.4 负载均衡 16
1.9.5 安全性 17
本章小结 17
第2章 从思维模型到基础代码 18
2.1 任务框架 20
2.2 工作节点框架 22
2.3 管理器框架 24
2.4 调度器框架 25
2.5 其他框架 26
2.6 让框架运转起来 27
本章小结 30
第3章 为任务框架补充细节 31
3.1 Docker:通过命令行启动、停止和检查容器 32
3.2 Docker:通过API启动、停止和检查容器 34
3.3 任务配置 36
3.4 启动和停止任务 37
本章小结 44
第II部分 工作节点
第4章 Cube的工作节点们,团结起来 47
4.1 Cube的工作节点 47
4.2 任务与Docker 50
4.3 队列的作用 50
4.4 数据库的作用 51
4.5 计数任务 51
4.6 实现工作节点的方法 51
4.6.1 实现StopTask方法 52
4.6.2 实现StartTask方法 53
4.6.3 关于任务状态的插曲 54
4.6.4 实现RunTask方法 57
4.7 整合所有内容 58
本章小结 60
第5章 工作节点的API 61
5.1 工作节点API概述 62
5.2 数据格式、请求与响应 63
5.3 API结构体 65
5.4 处理请求 66
5.5 提供API 69
5.6 整合所有内容 70
本章小结 75
第6章 指标 76
6.1 应该收集哪些指标数据 77
6.2 从/proc文件系统获取的指标数据 78
6.3 使用goprocinfo收集指标数据 80
6.4 在API上暴露指标数据 84
6.5 整合所有内容 86
本章小结 88
第III部分 管理器
第7章 管理器的引入 90
7.1 Cube管理器 91
7.2 Manager结构体 92
7.3 实现管理器的方法 93
7.3.1 实现SelectWorker方法 93
7.3.2 实现SendWork方法 95
7.3.3 实现UpdateTasks方法 96
7.3.4 向管理器添加任务 98
7.3.5 创建管理器 98
7.4 故障与弹性能力的讨论 99
7.5 整合所有内容 99
本章小结 104
第8章 管理器的 API 105
8.1 管理器API概述 105
8.2 路由 106
8.3 数据格式、请求和响应 107
8.4 API结构体 108
8.5 处理请求 109
8.6 提供API服务 111
8.7 提升便利性的几项重构 112
8.8 整合所有内容 113
本章小结 118
第9章 可能出现的问题 119
9.1 新场景概述 119
9.2 故障场景 120
9.2.1 应用启动失败 120
9.2.2 应用程序错误 121
9.2.3 资源问题导致的任务启动失败 121
9.2.4 Docker守护进程崩溃和重启导致的任务失败 121
9.2.5 机器崩溃和重启导致的任务失败 122
9.2.6 工作节点故障 122
9.2.7 管理器故障 122
9.3 恢复选项 122
9.3.1 从应用故障中恢复 123
9.3.2 从环境故障中恢复 123
9.3.3 从任务级故障中恢复 123
9.3.4 从工作节点故障中恢复 124
9.3.5 从管理器故障中恢复 125
9.4 实现健康检查 126
9.4.1 检查工作节点上的任务 126
9.4.2 在工作节点上实现任务更新 128
9.4.3 健康检查与重启 129
9.5 整合所有内容 133
本章小结 138
第IV部分 重构
第10章 实现一个更复杂的调度器 140
10.1 调度问题 140
10.2 调度时应考虑的事项 141
10.3 调度器接口 141
10.4 将轮询调度器适配到调度器接口 143
10.5 使用新的调度器接口 145
10.5.1 向Manager结构体添加新字段 145
10.5.2 修改New帮助函数 146
10.5.3 修改管理器的多个方法 147
10.6 你注意到这个bug了吗 149
10.7 整合所有内容 150
10.8 E-PVM调度器 153
10.8.1 相关理论 153
10.8.2 实践中的应用 154
10.9 完成 Node 实现 158
10.10 使用E-PVM调度器 161
本章小结 162
第11章 实现任务的持久化存储 163
11.1 存储问题 163
11.2 Store接口 164
11.3 实现任务的内存存储 166
11.4 实现任务事件的内存存储 168
11.5 重构管理器以使用新的内存存储 169
11.6 重构工作节点 174
11.7 整合所有内容 178
11.8 引入BoltDB 179
11.9 实现持久化任务存储 180
11.10 实现持久化任务事件存储 184
11.11 将内存存储替换为持久化存储 187
本章小结 188
第V部分 命令行接口
第12章 构建命令行接口 190
12.1 CLI的核心组件 191
12.2 引入Cobra框架 192
12.3 设置Cobra应用程序 192
12.4 理解新的main.go 193
12.5 理解root.go 193
12.6 实现worker命令 195
12.7 实现manager命令 200
12.8 实现run命令 203
12.9 实现stop命令 208
12.10 实现status命令 210
12.11 实现node命令 212
本章小结 215
第13章 展望未来 216
13.1 参与Kubernetes及相关工具的开发 216
13.2 管理器-工作节点模式与工作流系统 217
13.3 管理器-工作节点模式与集成系统 217
13.4 结束语 218
附录 环境设置 219
| 基本信息 | |
|---|---|
| 出版社 | 清华大学出版社 |
| ISBN | 9787302710486 |
| 条码 | 9787302710486 |
| 编者 | (美)蒂姆·博林(Tim Boring) 著 著 殷海英 译 译 |
| 译者 | 殷海英 |
| 出版年月 | 2026-03-01 00:00:00.0 |
| 开本 | 16开 |
| 装帧 | 平装 |
| 页数 | 220 |
| 字数 | 323000 |
| 版次 | 1 |
| 印次 | 1 |
| 纸张 | 一般胶版纸 |
暂无商品评论信息 [发表商品评论]
暂无商品咨询信息 [发表商品咨询]