Volcano 是一个 Kubernetes 原生的批处理调度系统,扩展并增强了标准 kube-scheduler 的功能。它提供了一套全面的功能,专门用于管理和优化各种批处理和弹性工作负载,包括人工智能(AI)/机器学习(ML)/深度学习(DL)、生物信息学/基因组学以及其他“大数据”应用。
这些工作负载通常利用 Spark、Flink、Ray、TensorFlow、PyTorch、Argo、MindSpore、PaddlePaddle、Kubeflow、MPI、Horovod、MXNet、KubeGene 等 AI、大数据和 HPC 框架,Volcano 与这些框架提供了强大的集成支持。
Volcano 融合了在多个系统和平台上大规模运行多样化高性能工作负载的超过十五年的集体经验。它结合了开源社区中经过验证的最佳实践和创新理念,以提供强大且灵活的调度解决方案。
截至 2025 年,Volcano 在全球众多行业得到了广泛采用,包括互联网/云、金融、制造业和医疗领域。许多组织和机构不仅是最终用户,也是该项目的积极贡献者。数百名贡献者积极参与代码提交、拉取请求审查、问题讨论、文档更新和设计提案。我们鼓励您参与 Volcano 项目的持续开发与成长。
[!NOTE] 调度器基于 kube-batch 构建; 更多详情请参阅 #241 和 #288。

Volcano 是 Cloud Native Computing Foundation (CNCF) 的一个孵化项目。如果您是一个希望积极参与支持云原生生态系统成长与演化的组织,请考虑加入 CNCF。
整体架构

演讲
- Intro: Kubernetes Batch Scheduling @ KubeCon 2019 EU
- Volcano 在 Kubernetes 中运行高性能作业实践 @ ArchSummit 2019
- Volcano:基于云原生的高密计算解决方案 @ Huawei Connection 2019
- Improving Performance of Deep Learning Workloads With Volcano @ KubeCon 2019 NA
- Batch Capability of Kubernetes Intro @ KubeCon 2019 NA
- Optimizing Knowledge Distillation Training With Volcano @ KubeCon 2021 EU
- Exploration About Mixing Technology of Online Services and Offline Jobs Based On Volcano @ KubeCon 2021 China
- Volcano - Cloud Native Batch System for AI, Big Data and HPC @ KubeCon 2022 EU
- How to Leverage Volcano to Improve the Resource Utilization of AI Pharmaceuticals, Autonomous Driving, and Smart Buildings @ KubeCon 2023 EU
- Run Your AI Workloads and Microservices on Kubernetes More Easily and Efficiently @ KubeCon 2023 China
- Optimize LLM Workflows with Smart Infrastructure Enhanced by Volcano @ KubeCon 2024 China
- How Volcano Enable Next Wave of Intelligent Applications @ KubeCon 2024 China
- Leverage Topology Modeling and Topology-Aware Scheduling to Accelerate LLM Training @ KubeCon 2024 China
生态系统
- Spark Operator
- Native Spark
- Flink
- KubeRay
- PyTorch
- TensorFlow
- kubeflow/trainer (v2)
- kubeflow/training-operator (v1)
- kubeflow/arena
- MPI
- Horovod
- PaddlePaddle
- Cromwell
- MindSpore
- MXNet
- Argo
- KubeGene
- LeaderWorkerSet
- Kthena
使用案例
- 为什么 Spark 选择 Volcano 作为 Kubernetes 上的内置批处理调度器?
- ING 银行:Volcano 如何赋能其大数据分析平台
- 在 Amazon EMR on EKS 上使用 Volcano 作为 Apache Spark 的自定义调度器
- 在 AKS 或 Arc Kubernetes 集群上部署 Azure Machine Learning 扩展
- 防止 Volcano 调度器 GPU 碎片化的实用技巧
- 在大规模分布式离线计算中使用 Volcano
- OpenI-Octopus:如何在 Kubernetes 集群中避免资源抢占
- Volcano 如何赋能小红书的推荐引擎
- 瑞天如何使用 Volcano 运行大规模离线 HPC 作业
- 将 Volcano 集成到雷鸟云操作系统中
- 基于 Volcano 的 HPC:容器如何支持气象行业的 HPC 应用
- 爱奇艺:基于 Volcano 的云原生迁移实践
- 在 Volcano 上进行 PaddlePaddle 分布式训练
快速入门指南
前提条件
- 支持 CRD 的 Kubernetes 1.12+
您可以通过以下两种方式之一来试用 Volcano。
[!NOTE]
- 对于 Kubernetes v1.17 及以上版本,请使用 config/crd/bases 下的 CRDs(推荐)
- 对于 Kubernetes v1.16 及以下版本,请使用 config/crd/v1beta1 下的 CRDs(已弃用)
使用 YAML 文件安装
在现有的 Kubernetes 集群上安装 Volcano。此方式同时支持 x86_64 和 arm64 架构。
kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/master/installer/volcano-development.yaml
享受吧!Volcano 将在 volcano-system 命名空间中创建以下资源。
NAME READY STATUS RESTARTS AGE
pod/volcano-admission-5bd5756f79-dnr4l 1/1 Running 0 96s
pod/volcano-controllers-687948d9c8-nw4b4 1/1 Running 0 96s
pod/volcano-scheduler-94998fc64-4z8kh 1/1 Running 0 96s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/volcano-admission-service ClusterIP 10.98.152.108 <none> 443/TCP 96s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/volcano-admission 1/1 1 1 96s
deployment.apps/volcano-controllers 1/1 1 1 96s
deployment.apps/volcano-scheduler 1/1 1 1 96s
NAME DESIRED CURRENT READY AGE
replicaset.apps/volcano-admission-5bd5756f79 1 1 1 96s
replicaset.apps/volcano-controllers-687948d9c8 1 1 1 96s
replicaset.apps/volcano-scheduler-94998fc64 1 1 1 96s
NAME COMPLETIONS DURATION AGE
job.batch/volcano-admission-init 1/1 48s 96s
通过 helm 安装
要安装官方版本,请访问 helm-charts 以获取详细信息。
helm repo add volcano-sh https://volcano-sh.github.io/helm-charts
helm install volcano volcano-sh/volcano -n volcano-system --create-namespace
开发人员从源代码安装:
helm install volcano installer/helm/chart/volcano --namespace volcano-system --create-namespace
# list helm release
helm list -n volcano-system
从代码安装
如果您没有 kubernetes 集群,请尝试从代码库一键安装:
./hack/local-up-volcano.sh
此方式目前仅暂时支持 x86_64。
安装 volcano agent
请按照指南 Volcano Agent 安装 volcano agent。
安装监控系统
如果您希望在安装 volcano 后获取 prometheus 和 grafana volcano 仪表盘,请尝试以下命令:
kubectl create -f installer/volcano-monitoring.yaml
安装仪表盘
请按照指南 Volcano Dashboard 安装 volcano dashboard。
Kubernetes 兼容性
| Kubernetes 1.36 | Kubernetes 1.35 | Kubernetes 1.34 | Kubernetes 1.33 | Kubernetes 1.32 | Kubernetes 1.31 | Kubernetes 1.30 | Kubernetes 1.29 | Kubernetes 1.28 | Kubernetes 1.27 | Kubernetes 1.26 | Kubernetes 1.25 | Kubernetes 1.24 | Kubernetes 1.23 | Kubernetes 1.22 | Kubernetes 1.21 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Volcano HEAD (master) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | - |
| Volcano v1.15 | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | - |
| Volcano v1.14 | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - |
| Volcano v1.13 | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - |
| Volcano v1.12 | - | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Volcano v1.11 | - | - | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Volcano v1.10 | - | - | - | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
✓Volcano 与 Kubernetes 版本完全兼容。+Volcano 具有某些 Kubernetes 版本中可能不存在的功能或 API 对象。-Kubernetes 版本具有某些 Volcano 无法使用的功能或 API 对象。
引用 Volcano
如果 Volcano 对您的研究有所帮助,我们感谢您的引用。以下是 BibTeX 条目:
@misc{volcano2025,
title={Volcano: A Cloud Native Batch System},
author={Klaus Ma and Kevin Wang and others},
year={2025},
howpublished={\url{https://github.com/volcano-sh/volcano}},
}
会议
我们为不同时区举办社区会议。请参阅 Volcano 社区会议信息。
资源:
联系方式
如果您有任何问题,请通过以下方式联系我们:
[!TIP] 初次接触 Volcano 社区?首先,请使用下方的 Join CNCF Slack 链接加入 CNCF Slack 工作区。登录后,在 CNCF Slack 工作区中搜索
#volcano频道并加入,以参与社区讨论。
CNCF Slack 工作区注册: 域名注册 或 社区邀请人
Volcano Slack 频道: #volcano
邮件列表: volcano-sh Google Group
微信: 请添加微信账号 k8s2222 并申请加入群聊。