第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 Insight193 7.6 集群资源计收费194 7.6.1 计收费流程196 7.6.2 计费模式196 附录A199