本文是 Volcano 源码阅读系列第六篇,讲解批调度基础架构,核心问题是 KubeRay 已创建 Pod 但集群资源不足时如何分配。Volcano 用 PodGroup 表达成组关系,Gang 插件检查最低运行门槛,Queue 组织共享资源。核心组件包括 Scheduler、Controller Manager 和 Admission Webhook。原生 Volcano Job 先准入再创建 Pod,而 KubeRay 路径会先创建未调度的 Ray Pod。
本文解析 Volcano 调度器如何满足 Gang 约束:调度从缓存快照开启 Session,依次执行 enqueue、allocate 等阶段。enqueue 判断作业能否进入调度,allocate 用 Statement 试分配资源,若成员未达最低数则 Discard 撤销。满足门槛后 Commit 并异步绑定,但绑定可能部分失败,Gang 不保证全部 Pod 同时启动。
完成下面两步后,将自动完成登录并继续当前操作。