从源码理解 KubeRay 与 Volcano:系列目录
阅读顺序
按第 0—10 篇依次阅读:先了解计算与部署的分工,再看 KubeRay 的集群管理和 Volcano 的批调度,最后回顾 Operator 设计。熟悉基础概念的读者可以直接从第 1 篇开始。
计算与部署
- 第 0 篇|从 Ray 到 Kubernetes:KubeRay 与 Volcano 各自解决什么问题
从分布式计算和容器部署讲起,解释 Ray、Kubernetes、KubeRay 与 Volcano 各自管理什么,以及一次作业怎样从声明走到运行。
KubeRay:集群管理、协调与恢复
- 第 1 篇|KubeRay 架构:组件分工与协作
以一次 RayJob 提交说明各类资源的用途,解释 KubeRay、Kubernetes 与 Ray 如何分工完成集群准备、程序执行和收尾。
- 第 2 篇|KubeRay 协调:从 Pod 变化到 Reconcile
从 worker Pod 的状态变化进入监听、缓存和工作队列,跟踪一次 Reconcile,以及事件、延时和错误怎样触发下一轮协调。
- 第 3 篇|KubeRay 并发:一个 Operator 如何管理 100 个 RayCluster
以 100 个 RayCluster 为推演场景,分析协调协程、队列键锁、缓存滞后与 expectations,区分管理并发和 Ray 计算并发。
- 第 4 篇|KubeRay 恢复:Operator 重启后如何继续工作
把中断放在资源创建与状态写回之间,沿持久化身份、对象查询和重试分支,分析 Operator 重启后的恢复依据与防重边界。
- 第 5 篇|KubeRay 高可用:从主备切换到 Ray 服务恢复
从 Operator 的 Lease 选主与接管,追到 Kubernetes 控制面、Ray head、GCS 和 RayService,分别核对管理恢复、计算恢复与请求可用性。
Volcano:批调度与 KubeRay 接入
- 第 6 篇|Volcano 架构:从 Pod 到作业
从几个 Pod 争用资源的问题进入 Volcano,区分 Job、PodGroup、Queue,以及 Scheduler、Controller Manager 和 Admission 的协作。
- 第 7 篇|Volcano Gang 调度:成组分配与绑定
沿一个三成员 PodGroup 走过准入、试分配、Gang 检查、提交与异步绑定,说明资源不足和部分绑定失败时会发生什么。
- 第 8 篇|Volcano 资源竞争:队列份额与作业调度
用两个 Queue 说明 Volcano 怎样计算资源份额、选择下一项工作,以及资源占满后怎样在 Queue 内抢占或跨 Queue 回收。
- 第 9 篇|KubeRay 与 Volcano:接入与生命周期协作
对比默认流程与 Volcano 接入流程,跟踪 RayCluster Controller 创建成员 Pod 的路径,再说明参数传递和生命周期协作。
源码阅读总结
- 第 10 篇|总结:从 KubeRay 与 Volcano 看 Operator 设计
总结 Operator 的资源建模与协调逻辑、并发控制、恢复和高可用设计,以及 Kubernetes 和 controller-runtime 提供的支撑机制。