本系列从源码角度解析 KubeRay 与 Volcano。先介绍 Ray、Kubernetes、KubeRay 与 Volcano 的职责与架构;KubeRay 部分涵盖组件分工、Reconcile 协调、并发管理、Operator 重启恢复与高可用;Volcano 部分涵盖 Job、PodGroup、Queue 架构、Gang 调度、队列资源竞争与抢占,以及 KubeRay 接入和生命周期协作;最后总结 Operator 设计。
本系列文章阅读KubeRay与Volcano源码。Ray以task和actor表达分布式计算,Kubernetes以Pod管理容器部署;KubeRay通过CRD和Operator管理RayCluster、RayJob等资源,Volcano提供Gang成组调度与队列资源共享。系列共十篇:前五篇追踪RayJob从提交到Pod运行的协调与恢复,后四篇引入Volcano分析批调度。
本文是 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 同时启动。
本文解析 Volcano 多作业资源共享与竞争机制:Queue 通过 proportion 插件按权重、需求、上限和保障量计算 deserved 份额;DRF 以主导资源份额排序作业;preempt 处理队列内抢占,reclaim 处理跨队列回收,均需检查优先级、可抢占性、Gang 与节点约束。驱逐后资源不会立即可用,Ray 任务可能无法无损恢复。
KubeRay Operator 通过 Volcano 适配器将 RayJob 转换为 PodGroup 等调度资源。适配器创建 PodGroup,设置 owner 引用、分组注解和 schedulerName;最低成员数不含 submitter 以避免启动死锁,但其资源仍提前计入。资源计算基于模板 requests,未涵盖 init 容器等。收尾时按存活集群重算需求,而非直接清零。
本文总结KubeRay与Volcano源码阅读:用户提交RayJob后,KubeRay创建RayCluster及head、worker Pod,集群就绪后由submitter经Ray Jobs API提交程序。启用Volcano时,先写PodGroup,再在Pod上标注调度器与组信息,由Volcano负责Pod绑定。KubeRay协调、Volcano调度与Ray运行时三套循环通过Kubernetes对象和Ray API衔接,各自独立重试。恢复依赖可重建状态链,高可用需分层看待。
本文探讨了Volcano模型在执行层的应用,重点分析了Trino与PostgreSQL的对比。核心内容包括通过pull语义驱动子算子、阻断pipeline的算子,以及Trino在Volcano框架下的批量化改造。文章还介绍了算子的接口、Pipeline与Pipeline Breaker的概念,以及PostgreSQL的执行机制,最后讨论了Volcano在OLAP中的局限性与演进。
Volcano是专为高性能计算和AI/ML工作负载设计的Kubernetes云原生批处理调度器。其插件集成到可扩展的Kubernetes网页UI Headlamp中,方便用户查看工作负载状态、队列行为和调度细节,简化资源管理并提高操作效率。未来可能会增加Prometheus集成和更丰富的调度洞察。
Volcano是专为高性能计算和AI/ML工作负载设计的Kubernetes云原生批处理调度器。Headlamp是可扩展的Kubernetes网页UI,支持插件系统。Volcano插件将核心资源整合到Headlamp中,便于用户检查工作负载状态、队列行为和调度细节,提升操作和故障排除的效率。
随着大型语言模型的发展,Kubernetes成为智能系统的重要平台。新功能如Volcano v1.14、Kthena v0.3.0和AgentCube提升了资源调度效率,简化了大模型部署,并支持异构自动扩展,推动AI基础设施进步。
Volcano v1.14发布,提升AI调度能力,支持多调度器架构和Agent Scheduler,满足批量计算与延迟敏感需求。增强网络拓扑感知,支持通用操作系统,集成昇腾vNPU,扩展多集群能力,改善用户体验。
Kthena是Volcano社区推出的子项目,旨在为全球开发者和MLOps工程师提供高效的云原生大语言模型推理调度解决方案。它通过拓扑感知调度和智能路由优化GPU/NPU资源利用,降低延迟,简化Kubernetes上大语言模型的部署。Kthena支持多模型管理和动态扩展,提高AI生命周期的整体效率。
AgentCube是基于Volcano的AI智能体编排层,旨在解决Kubernetes在高并发、低延迟AI工作负载中的不足。它通过预热池机制加速启动,提升调度效率,并引入会话管理和Serverless弹性伸缩,支持多种Agent框架,推动AI基础设施发展。
Volcano推出Kthena,一个专为Kubernetes设计的高性能LLM推理调度系统,旨在提高GPU/NPU资源利用率,简化多模型管理,解决资源利用率低、延迟与吞吐量难以兼顾的问题,推动云原生AI生态发展。
Volcano v1.13版本发布,增强了大模型训练与推理调度能力,支持LWS、Cron任务管理和网络拓扑发现,提升了AI计算框架的兼容性,简化了复杂工作负载管理,旨在提供高效稳定的计算平台。
Kong在2025年API峰会上发布了名为Volcano的开源SDK,旨在简化AI代理的开发。该SDK采用MCP原生方法,支持多种模型,能够自动生成订单。Kong希望通过开源Volcano为开发者提供更好的工具,促进MCP代理的构建。
iFLYTEK在2025年KubeCon + CloudNativeCon中国大会上展示了利用Volcano优化大规模AI模型训练的案例,通过弹性调度和多租户隔离,提高了GPU利用率,降低了基础设施成本,加快了训练速度。
批处理在现代数据处理和机器学习中至关重要。Kubernetes虽然最初用于长时间运行的服务,但现已支持批处理工作负载。本文探讨了Kubernetes上的批调度及其挑战,并比较了三种开源工具:Apache YuniKorn、Volcano.sh和Kueue,以有效管理资源和任务依赖。选择合适的工具可提升Kubernetes的批处理能力。
Volcano v1.11更新聚焦于AI与大数据,推出网络拓扑感知调度和多集群AI作业调度等新特性,显著提升训练与推理性能,优化资源利用率,支持动态资源分配,确保在线业务高可用性,成为云原生批量计算的新标杆。
完成下面两步后,将自动完成登录并继续当前操作。