第1部分 集群调度
第1章 集群任务与集群资源调度 2
1.1 集群调度概述 2
1.1.1 层次关系 2
1.1.2 术语解释 3
1.2 集群任务调度 5
1.2.1 问题背景 6
1.2.2 解决什么问题 6
1.2.3 一般解法 6
1.2.4 实践案例 7
1.3 集群资源调度 8
1.3.1 资源调度解决什么问题 8
1.3.2 资源描述 9
1.3.3 如何调度资源 13
第2章 资源调度核心指标 14
2.1 业务背景 14
2.1.1 缩容 15
2.1.2 扩容 16
2.1.3 故障处理 18
2.1.4 负载均衡 20
2.1.5 宏观评价 20
2.1.6 具体指标 21
2.2 资源调度性能 23
2.3 资源调度成功率 25
2.4 资源分配率 26
2.5 资源实际利用率 29
2.5.1 资源宏观利用率分布 30
2.5.2 分配不充分 31
2.5.3 负载不均衡 32
2.5.4 编排动态调整 33
2.6 资源利用率最优剖析 33
2.6.1 解决什么问题 34
2.6.2 如何解决问题 35
2.6.3 案例分享 42
第3章 基本调度算法 51
3.1 装箱算法 52
3.2 操作系统CFS调度 55
3.3 操作系统PV操作 62
3.4 Golang GMP模型 64
3.5 Kubernetes调度算法 93
3.5.1 资源数据定义 94
3.5.2 资源数据获取 98
3.5.3 资源数据计算 102
3.5.4 资源扣减和一致性更新 106
3.5.5 资源分配常见算法 107
3.6 Hadoop调度算法 110
3.6.1 资源数据定义 111
3.6.2 资源数据获取 111
3.6.3 资源数据计算 112
3.6.4 资源扣减和一致性更新 114
3.6.5 资源分配常见算法 116
3.7 “双11”调度算法 118
3.7.1 问题和解决思路 118
3.7.2 架构和关键实现抽象 124
3.8 云端资源调度算法 126
3.8.1 云服务提供商资源调度 126
3.8.2 混合云资源生产调度 127
3.9 单机资源调度 131
3.10 调度评测 134
3.10.1 设计和实施 135
3.10.2 开源模拟器 139
第4章 资源调度架构设计和实践 141
4.1 资源视图下的架构划分 144
4.2 集群调度基本构件 147
4.3 集群资源管理角度 150
4.3.1 面向过程的调度架构设计和实践 151
4.3.2 面向终态的调度架构设计和实践 151
4.3.3 面向服务的调度架构设计和实践 152
4.4 分层与垂直化分工协同 152
4.5 中心调度与单机调度定位 155
4.6 规模化、平台化与个性化、场景化 156
4.7 解决问题优先与架构设计改进 157
第2部分 集群管理
第5章 集群资源管理含义 159
5.1 集群资源管理解决什么问题 159
5.2 集群资源管理和资源调度的关系 160
5.3 集群资源管理一般怎么做 163
第6章 集群资源管理核心指标 166
6.1 集群资源管理效能指标 166
6.2 集群资源软硬件故障率 167
6.3 集群资源可用率 168
6.4 集群资源分配率 169
6.5 集群资源利用率 170
第7章 集群资源管理常用策略 172
7.1 基础设施镜像化 172
7.2 统一资源池 173
7.3 标签化管理 174
7.3.1 标签设计原则 176
7.3.2 标签运用 178
7.3.3 案例:Kubernetes的Label设计与使用管理 179
7.4 面向终态巡检和一致性修复 180
7.4.1 面向终态巡检 180
7.4.2 一致性修复 182
7.4.3 案例:Kubernetes的一致性修复 183
7.5 数据驱动 184
7.5.1 调度体系数据脉络 185
7.5.2 数据体系构建 185
7.5.3 案例:Kubernetes Insight 193
7.6 集群资源计收费 194
7.6.1 计收费流程 196
7.6.2 计费模式 196
附录A 199