本文分享自华为云社区《Volcano v1.14 重磅发布!迈向 AI 统一调度新纪元

北京时间2026年1月,Volcano[1] v1.14 正式发布。随着 AI 业务形态从单一的离线训练向在线推理、Agent 智能体等多元化场景延伸,调度系统面临着前所未有的挑战。v1.14[2] 通过架构级的创新,在保持大规模批量计算优势的同时,补齐了对延迟敏感型业务的调度短板,向着 “AI训推、RL、Agent全场景统一调度平台” 的目标迈出了坚实一步。

download

版本亮点

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 构建了一套可扩展的多调度器架构,能够根据集群实时状态,为每个调度器动态计算候选节点池。与传统的静态分区不同,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[3]
感谢社区开发者:@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[4]
感谢社区开发者:@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[5]
感谢社区开发者:@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[6], Agent Cgroup V2 Adaptation[7]

感谢社区开发者:@Haibara-Ai97, @JesseStutler, @ouyangshengjia

昇腾 vNPU 调度

v1.14 原生集成了昇腾 vNPU(虚拟 NPU)调度能力,实现昇腾 AI 处理器在多个工作负载之间的高效算力复用。提供两种模式,灵活适配不同部署场景。

支持模式

1. MindCluster 模式

  • 集成自 Ascend MindCluster 调度插件:https://gitcode.com/Ascend/mind-cluster
    • 支持昇腾 310P 系列的动态虚拟化

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[8]
感谢社区开发者:@JackyTYang, @DSFans2014

Volcano Global 增强

Volcano Global v0.3.0 引入了两个重要功能,通过基于计算资源和数据局部性的智能调度,显著扩展了 Volcano Global 对 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[9]
感谢社区开发者:@JesseStutler, @fx147, @Monokaix, @zhoujinyu, @anryko, @tanberBro

Volcano Dashboard v0.2.0

Volcano Dashboard v0.2.0 对资源管理能力进行了重大增强,使得通过 Web 界面管理 Volcano 资源更加便捷。
核心增强

  • PodGroup 全景可视化:跨命名空间查看、搜索、过滤 PodGroup,支持 YAML 语法高亮。
  • Job 生命周期管理:直接在界面创建、删除 Volcano Job,操作更便捷。
  • Queue 管理增强:在线编辑 Queue 配额、权重,支持 YAML 直接修改。
  • 安全加固:默认配置 SELinux、Seccomp、非 root 运行及禁止提权,保障生产安全。

详见: Volcano Dashboard v0.2.0 Release Notes[10]
感谢社区开发者:@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 位社区贡献者参与。衷心感谢每一位贡献者:

@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  

相关链接

[1] Volcano: https://volcano.sh/en/
[2] Volcano v1.14.0: https://github.com/volcano-sh/volcano/releases/tag/v1.14.0
[3] Sharding Controller Design: https://github.com/volcano-sh/volcano/blob/v1.14.0/docs/design/sharding_controller.md
[4] Agent Scheduler Design: https://github.com/volcano-sh/volcano/blob/v1.14.0/docs/design/agent-scheduler.md
[5] Network Topology Aware Scheduling: https://github.com/volcano-sh/volcano/blob/v1.14.0/docs/design/Network%20Topology%20Aware%20Scheduling.md
[6] CPU Throttle Design: https://github.com/volcano-sh/volcano/blob/v1.14.0/docs/design/cpu-throttle-design.md
[7] Agent Cgroup V2 Adaptation: https://github.com/volcano-sh/volcano/blob/v1.14.0/docs/design/agent-cgroup-v2-adaptation.md
[8] How to Use vNPU: https://github.com/volcano-sh/volcano/blob/v1.14.0/docs/user-guide/how_to_use_vnpu.md
[9] Volcano Global v0.3.0 Release Notes: https://github.com/volcano-sh/volcano-global/releases/tag/v0.3.0
[10] Volcano Dashboard v0.2.0 Release Notes: https://github.com/volcano-sh/dashboard/releases/tag/v0.2.0


原文地址: https://www.cveoy.top/t/topic/qFXy 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录