
北京时间2026年1月,CNCF旗下的云原生批量计算项目 Volcano 正式发布了 v1.14 版本。当下,AI业务形态正从单一的离线训练快速向在线推理、Agent智能体等多元化场景延伸,这对底层的调度系统提出了前所未有的挑战。v1.14 版本通过一系列架构级创新,在保持其大规模批量计算传统优势的同时,显著加强了对延迟敏感型业务的调度能力,朝着构建 “AI训推、RL、Agent全场景统一调度平台” 的目标迈出了坚实一步。
版本亮点
v1.14.0 版本带来了以下重磅更新:
统一调度平台架构
- 多调度器架构升级:动态节点分片机制 (Alpha)
- AI Agent 工作负载极速调度能力 (Alpha)
网络拓扑感知调度增强
- HyperNode 级 Binpack 策略
- SubGroup 级精细化拓扑感知
- PodGroup 与 SubGroup 多层级 Gang Scheduling
- Volcano Job 分区支持
混部能力增强
- 全面支持通用操作系统(Ubuntu、CentOS 等)
- Cgroup V2 全面适配
- CPU 动态压制
- 基于 Cgroup V2 的内存 QoS
- 支持 CPU Burst
- 支持 systemd driver 自动检测
异构硬件支持
- 昇腾 vNPU 调度(支持 MindCluster 和 HAMi 模式)
Volcano Global 增强
- HyperJob 多集群作业自动拆分
- 数据感知多集群调度
Volcano Dashboard 增强
- PodGroup 全景可视化
- Job / Queue 全生命周期管理
多调度器架构升级:动态节点分片机制 (Alpha)
随着Volcano承载的工作负载类型日益丰富且规模持续扩大,传统的单一调度器架构逐渐显现出瓶颈。批量训练、AI Agent、微服务等不同类型的负载,对调度时延和资源利用模式的诉求差异巨大。单个调度器难以面面俱到,而简单的静态资源划分又容易导致利用率低下。
新引入的 Sharding Controller 构建了一套可扩展的多调度器架构。它的核心在于能够根据集群的实时状态,为每个调度器动态计算候选节点池,而非进行强制性的硬隔离。这种动态、灵活的资源划分机制,让Volcano有望真正成为“一个平台调度所有负载”的统一调度平台,同时兼顾高吞吐与低时延。
核心能力:
- 动态分片策略:支持基于多种策略计算动态候选节点池。当前版本已支持基于CPU利用率的分片策略,其架构设计具备良好的可扩展性,便于未来集成更多分片算法。
- 节点池化管理:引入 NodeShard CRD,用于为特定的调度器管理其专属的动态候选节点池。
- 支持大规模集群:通过在多个调度器间灵活分配负载,天然适配大规模集群场景。
- 多调度器协同:支持多种调度器组合的无缝协作。无论是部署多个 Batch Scheduler 进行负载分担,还是混合部署 Agent Scheduler 与 Batch Scheduler 以满足不同业务需求,都能灵活适配。
配置示例:
# Sharding Controller 启动参数
--scheduler-configs="volcano:volcano:0.0:0.6:false:2:100,agent-scheduler:agent:0.7:1.0:true:2:100"
--shard-sync-period=60s
--enable-node-event-trigger=true
# 参数格式: name:type:min_util:max_util:prefer_warmup:min_nodes:max_nodes
相关 PR:https://github.com/volcano-sh/volcano/pull/4777
设计文档:Sharding Controller Design
感谢社区开发者:@ssfffss, @Haoran, @qi-min
AI Agent 工作负载极速调度 (Alpha)
AI Agent 类业务对调度时延极度敏感,其任务创建频繁、生命周期短暂,对调度器的响应速度和吞吐量提出了严苛要求。原生的Volcano Batch Scheduler专为批量计算设计,采用固定周期处理Pod的方式,难以满足Agent场景的毫秒级响应需求。
为了打造一个能同时兼容批量计算与延迟敏感型业务的统一调度平台,v1.14 版本引入了专用的 Agent Scheduler。它通过 Sharding Controller 与批量调度器协同工作,各司其职又无缝配合,真正实现“一个平台、多种负载”的愿景。
核心能力:
- 极速调度通道:专为延迟敏感型负载(如 AI Agent)打造的独立调度器,旨在提供极致的响应速度。
- 多 Worker 并行处理:采用多 Worker 并发消费调度队列的架构,大幅提升调度吞吐量。
- 乐观并发控制:引入 Conflict-Aware Binder 机制,在实际执行绑定操作前预先解决资源冲突,减少无效操作。
- 增强型调度队列:优化了队列机制,支持紧急任务的重试,确保关键任务不会被阻塞。
- 统一平台融合:通过 Sharding Controller 与批量调度器无缝协作,实现集群资源的共享。
相关 PR:
https://github.com/volcano-sh/volcano/pull/4804,
https://github.com/volcano-sh/volcano/pull/4801,
https://github.com/volcano-sh/volcano/pull/4805
设计文档:Agent Scheduler Design
感谢社区开发者:@qi-min, @JesseStutler, @handan-yxh
网络拓扑感知调度增强
Volcano v1.14.0 对网络拓扑感知调度能力进行了进一步增强,以满足LLM训练、推理、HPC等分布式、网络密集型工作负载日益增长的需求。
核心增强:
- SubGroup 级精细化拓扑感知:支持在 SubGroup / Partition 粒度设置网络拓扑约束,调度颗粒度更加精细。
- 灵活的网络层级约束:新增
highestTierName 字段,支持按名称指定允许跨越的最高网络层级。
- 多层级 Gang Scheduling:同时支持 PodGroup 级别和 SubGroup 级别的 Gang Scheduling,确保分布式任务调度的整体性。
- Volcano Job 分区:支持将 Job 拆分为多个分区(Partition),便于管理 TP/PP/DP 等并行策略,并优化网络亲和性。
- HyperNode 级 Binpacking:在 HyperNode(如交换机、机架)层级进行资源装箱,减少网络碎片,提升跨节点通信效率。
配置示例 - Volcano Job:
apiVersion: batch.volcano.sh/v1alpha1
kind: Job
metadata:
name: llm-training-job
spec:
networkTopology:
mode: hard
highestTierAllowed: 2 # 整个 Job 最多跨越 Tier 2 HyperNode
tasks:
- name: trainer
replicas: 8
partitionPolicy:
totalPartitions: 2 # 拆分为 2 个分区
partitionSize: 4 # 每个分区 4 个 Pod
minPartitions: 2 # 至少需要 2 个分区
networkTopology:
mode: hard
highestTierAllowed: 1 # 单个分区必须在 Tier 1 内
template:
spec:
containers:
- name: trainer
image: training-image:v1
resources:
requests:
nvidia.com/gpu: 8
相关 PR:
https://github.com/volcano-sh/volcano/pull/4721,
https://github.com/volcano-sh/volcano/pull/4810,
https://github.com/volcano-sh/volcano/pull/4795,
https://github.com/volcano-sh/volcano/pull/4785,
https://github.com/volcano-sh/volcano/pull/4889
设计文档:Network Topology Aware Scheduling
感谢社区开发者:@ouyangshengjia, @3sunny, @zhaoqi, @wangyang0616, @MondayCha, @Tau721
混部能力全面升级:支持通用操作系统
本次发布对Volcano的混部能力进行了全面改进。其中一个重要的里程碑是:Volcano混部能力正式支持通用操作系统(如Ubuntu、CentOS等),不再局限于特定的OpenEuler发行版。这意味着更广泛的用户群体可以利用Volcano Agent实现在线业务与离线任务的混合部署,从而有效提升集群的整体资源利用率。
CPU 动态压制 (CPU Suppression)
在线业务的流量通常具有明显的潮汐特性。为了在保障在线业务SLA的前提下最大化资源利用,离线Pod的CPU配额需要能够跟随在线业务用量动态调整:在线用量高时压制离线配额,在线用量回落时逐步恢复,实现一种自适应的资源分配。
核心设计:
- 根据节点的可分配CPU和实时用量,动态调整BestEffort root cgroup的CPU配额。
- 采用“监控-事件-处理”的架构,并实施了保守的更新策略,以有效抑制配额调整带来的抖动。
配置示例:
cpuThrottlingConfig:
enable: true
cpuThrottlingThreshold: 80 # BE 配额上限为可分配 CPU 的 80%
cpuJitterLimitPercent: 1 # 配额变化超过 1% 才触发更新
cpuRecoverLimitPercent: 10 # 单次恢复上限 10%
内存 QoS (Cgroup V2)
基于Cgroup V2实现了混部场景下的内存隔离能力。新增了 ColocationConfiguration CRD,支持为指定的工作负载配置精细化的内存QoS策略。
核心能力:
- New API:通过
ColocationConfiguration CRD,使用标签选择器来定义内存隔离策略。
- 动态计算:
memory.high = pod.limits.memory * highRatio %
memory.low = pod.requests.memory * lowRatio %
memory.min = pod.requests.memory * minRatio %
- 统一接口:可靠地检测并支持Cgroup V2环境。
使用示例:
apiVersion: config.volcano.sh/v1alpha1
kind: ColocationConfiguration
metadata:
name: colo-config1
spec:
selector:
matchLabels:
app: offline-test
memoryQos:
highRatio: 100 # memory.high = memory.limits * 100%
lowRatio: 50 # memory.low = memory.requests * 50%
minRatio: 0 # memory.min = memory.requests * 0%
CPU Burst 与 Cgroup V2 全面支持
CPU Burst能力现已扩展至通用的操作系统。同时,Volcano Agent现已全面适配Cgroup V2环境,支持自动检测Cgroup版本及驱动类型(如systemd driver),无需人工干预即可在现代Linux发行版上无缝运行。
相关 PR:
https://github.com/volcano-sh/volcano/pull/4632,
https://github.com/volcano-sh/volcano/pull/4945,
https://github.com/volcano-sh/volcano/pull/4913,
https://github.com/volcano-sh/volcano/pull/4984
设计文档:CPU Throttle Design, Agent Cgroup V2 Adaptation
感谢社区开发者:@Haibara-Ai97, @JesseStutler, @ouyangshengjia
昇腾 vNPU 调度
v1.14 版本原生集成了昇腾 vNPU(虚拟NPU)调度能力,实现了昇腾AI处理器在多个工作负载之间的高效算力复用。该特性提供了两种模式,以灵活适配不同的部署场景。
支持模式:
1. MindCluster 模式
2. HAMi 模式
- 由 HAMi 社区开发
- 同时支持昇腾 310 和 910 系列
- 支持异构昇腾集群(910A、910B2、910B3、310P)
调度器配置:
# MindCluster 模式
- name: deviceshare
arguments:
deviceshare.AscendMindClusterVNPUEnable: true
# HAMi 模式
- name: deviceshare
arguments:
deviceshare.AscendHAMiVNPUEnable: true
deviceshare.SchedulePolicy: binpack # 或 spread
相关 PR:
https://github.com/volcano-sh/volcano/pull/4656,
https://github.com/volcano-sh/volcano/pull/4717
使用文档:How to Use vNPU
感谢社区开发者:@JackyTYang, @DSFans2014
Volcano Global 增强
Volcano Global v0.3.0 引入了两个重要功能,通过基于计算资源和数据局部性的智能调度,显著扩展了对AI/ML和大数据工作负载的支持能力。
HyperJob:多集群作业自动拆分
随着AI训练工作负载规模和复杂性的增长,跨多个异构集群管理大规模训练作业成为企业面临的挑战。HyperJob是构建在Volcano Job之上的更高级抽象。它组合多个Volcano Job模板,将训练能力扩展到单集群边界之外,同时保留每个集群内现有Volcano Job的全部能力。
核心能力:
- Karmada 深度集成:自动生成 PropagationPolicy,精准配置集群亲和性与副本调度策略。
- 状态统一聚合:将分散在各集群的子任务状态汇总为统一的 HyperJob 状态,实现全局可观测。
- 自动资源生成:根据 ReplicatedJob 定义自动创建对应的 VCJob 和 PropagationPolicy。
HyperJob 资源示例(跨2个集群拆分大规模训练作业,共需256个GPU):
apiVersion: training.volcano.sh/v1alpha1
kind: HyperJob
metadata:
name: llm-training
spec:
replicatedJobs:
- name: trainer
replicas: 2
templateSpec:
tasks:
- name: worker
replicas: 128
template:
spec:
containers:
- name: trainer
image: training-image:v1
resources:
requests:
nvidia.com/gpu: 1
数据感知调度
在AI训练和大数据分析等高性能计算场景中,任务执行不仅依赖计算资源,还严重依赖数据资源。在多集群环境中,调度器可能会将任务分派到与数据源物理距离较远的集群,导致跨地域带宽成本过高和I/O延迟激增。
数据感知调度框架引入了 DataDependencyController,打通了逻辑数据需求与物理集群分布之间的壁垒。通过与外部插件(如Amoro)集成以实时获取数据分布信息,该框架能自动将调度约束注入Karmada,实现“计算随数据而动”的全自动化工作流。
核心能力:
- 插件化架构:可扩展支持 Amoro、Hive、S3 等多种数据系统。
- 声明式 API:通过 DataSourceClaim / DataSource CRD,采用“声明-缓存”模式管理数据源。
- 自动亲和注入:将数据局部性要求自动转化为 ClusterAffinity 约束,并注入到 ResourceBinding 中。
详见:Volcano Global v0.3.0 Release Notes
感谢社区开发者:@JesseStutler, @fx147, @Monokaix, @zhoujinyu, @anryko, @tanberBro
Volcano Dashboard v0.2.0
Volcano Dashboard v0.2.0 对资源管理能力进行了重大增强,使得通过Web界面管理Volcano资源变得更加便捷。
核心增强:
- PodGroup 全景可视化:支持跨命名空间查看、搜索和过滤 PodGroup,并提供了YAML语法高亮显示。
- Job 生命周期管理:用户可以直接在Web界面创建、删除Volcano Job,操作更加直观便捷。
- Queue 管理增强:支持在线编辑 Queue 的配额、权重等参数,也允许直接通过YAML进行修改。
- 安全加固:默认配置了SELinux、Seccomp,以非root用户运行并禁止提权,保障生产环境的安全性。
详见:Volcano Dashboard v0.2.0 Release Notes
感谢社区开发者:@vzhou-p, @Shrutim1505, @JesseStutler, @karanBRAVO, @Sayan4444, @jayesh9747, @Alivestars24, @kuldeep, @Monokaix
调度器稳定性与性能提升
Reclaim 重构与增强
对 Reclaim Action 进行了全面重构,并修复了 Capacity Plugin 中的关键逻辑问题,从而大幅提升了多租户集群场景下资源回收的准确性、稳定性和性能。
主要改进:
- Reclaim Action 重构:重构了reclaim的工作流,提高了代码的可读性、可维护性以及测试覆盖率。
- 增强的 Capacity Plugin 逻辑:修复了
reclaimableFn 和 preemptiveFn 函数,确保其能正确处理标量资源并防止做出错误的抢占决策。
- 稳定性提升:解决了资源计算中的一些边缘情况,有效防止了调度死循环和误驱逐的发生。
相关 PR:
https://github.com/volcano-sh/volcano/pull/4794,
https://github.com/volcano-sh/volcano/pull/4659,
https://github.com/volcano-sh/volcano/pull/4919
感谢社区开发者:@guoqinwill, @hajnalmt
支持 Kubernetes 1.34
Volcano 版本始终紧跟 Kubernetes 社区的发展步伐。v1.14 已全面支持最新的 Kubernetes v1.34,并通过了完整的单元测试和端到端(E2E)测试,以确保功能的完备性与稳定性。
相关 PR:https://github.com/volcano-sh/volcano/pull/4704
感谢社区开发者:@suyiiyii, @tunedev
总结:Volcano v1.14.0 — AI 时代的统一调度平台
Volcano v1.14 是一个里程碑式的版本。通过引入多调度器架构和专用的Agent Scheduler,Volcano正式迈入了统一调度平台的新阶段,既能高效处理批量的AI训练任务,又能满足AI Agent对极致调度时延的苛刻要求。网络拓扑感知的增强、对通用操作系统的混部支持、昇腾 vNPU 的原生集成,进一步夯实了Volcano在AI基础设施领域的领先地位。
同时,Volcano Global v0.3.0 通过 HyperJob 实现了大规模分布式训练的自动拆分和数据感知调度,极大地扩展了多集群管理能力。Volcano Dashboard v0.2.0 则通过全面的资源管理功能显著改善了用户的操作体验。
立即体验 Volcano v1.14,共启 AI 时代统一调度新篇章!
v1.14.0 发布地址:https://github.com/volcano-sh/volcano/releases/tag/v1.14.0
Volcano Global v0.3.0 发布地址:https://github.com/volcano-sh/volcano-global/releases/tag/v0.3.0
Volcano Dashboard v0.2.0 发布地址:https://github.com/volcano-sh/dashboard/releases/tag/v0.2.0
致谢
Volcano v1.14 生态版本(含 Volcano Global v0.3.0、Dashboard v0.2.0)共有 55 位社区贡献者参与。衷心感谢每一位贡献者的辛勤付出,是社区的力量共同推动了这次重要的发布。欢迎大家持续关注 云栈社区,这里汇集了更多关于云原生和AI技术的深度讨论与实践分享。
贡献者列表:
@3sunny, @3th4novo, @acsoto, @Alivestars24, @Aman-Cool, @anryko, @archlitchi, @dafu-wu, @DSFans2014, @FAUST-BENCHOU, @fengruotj, @Freshwlnd, @fx147, @goyalpalak18, @guoqinwill, @Haibara-Ai97, @hajnalmt, @halcyon-r, @handan-yxh, @JackyTYang, @jayesh9747, @JesseStutler, @jiahuat, @karanBRAVO, @kingeasternsun, @kiritoxkiriko, @kube-gopher, @kuldeep, @LiZhenCheng9527, @medyagh, @MondayCha, @Monokaix, @mvinchoo, @neeraj542, @nitindhiman314e, @ouyangshengjia, @PersistentJZH, @qi-min, @rhh777, @ruanwenjun, @RushabhMehta2005, @sailorvii, @Sayan4444, @Shrutim1505, @ssfffss, @suyiiyii, @tanberBro, @Tau721, @vzhou-p, @wangyang0616, @weapons97, @Wonki4, @zhaoqi612, @zhengchenyu, @zhoujinyu, @zjj2wry