Cluster Management

GPU 集群管理

调度框架 · 多租户 · 拓扑通信 · 故障容错

clustervolcanofault-tolerance
当前模块
学习进度0 / 5
Module Switcher
GPU 集群管理内容模块
框架与多租户2
通信与容错2
面试1
内容模块

调度框架

基础★☆☆⏱ 28 min

一句话结论

GPU 集群调度框架要按“默认 K8s 缺什么、各框架补什么、规模上来后怎么自研”来回答。Volcano 偏批调度和 Gang,Kueue 偏准入排队,YuniKorn 偏层级队列,Run:ai 偏商业 GPU 虚拟化。

为什么不能只用 K8S 默认调度器

K8S 默认调度器适合每个 Pod 独立调度的在线服务。但 GPU 训练任务通常需要一组 Pod 同时启动、长时间运行、拓扑敏感、多租户公平和抢占恢复。默认 scheduler 没有任务级队列、没有作业级配额、没有 Gang 语义,也不能表达“超过 10 张 GPU 后继续提交但排队”。

需求默认 K8s 支持情况需要补的能力
任务级排队不支持,只是 Pod 调度队列Queue / Workload / AIJob 准入队列
租户 GPU 限额ResourceQuota 会直接拒绝超额创建允许提交,超额任务排队等待
Gang Scheduling不支持 job 级 all-or-nothingPodGroup / Workload / Permit 等待
异构 GPU靠 label / extended resource 粗表达ResourceFlavor / DRA / 拓扑画像
公平共享默认只按 Pod 优先级和资源匹配DRF、proportion、borrowing、reclaim

框架选型地图

框架定位最适合主要代价
VolcanoK8s 原生批调度系统训练/HPC/Spark/Flink 等需要 Gang 和 Queue 的场景学习 CRD 和插件体系,和调度器耦合较深
KueueK8s SIG 官方作业准入/排队系统不想替换 scheduler,只想做队列和配额准入不控制 Pod 级调度细节
YuniKorn层级队列资源管理器大型组织、多层部门/团队资源治理架构和运维复杂度更高
Run:ai商业 GPU 虚拟化平台快速落地 GPU 共享、配额、可视化和成本治理闭源、定制深度受限
自研队列 + Scheduler Plugin按业务定制已有 K8s 基础但需要 AIJob、预测、干扰、代价抢占研发和维护成本最高

面试回答套路

  1. 先说默认 K8s 只能解决 Pod 到 Node 的绑定,不解决任务级队列和 Gang。
  2. 再说 Volcano / Kueue / YuniKorn / Run:ai 分别补哪一层能力。
  3. 最后根据规模和需求选型:小规模用 Volcano/Kueue,组织层级复杂看 YuniKorn,需要 GPU 共享商业能力看 Run:ai,深度定制走自研。
收束:框架选型不是比谁更先进,而是看你要控制“准入排队、调度过程、队列层级、GPU 共享、业务定制”中的哪一层。