ITADN
volcano-sh/volcano
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

Build Status Go Report Card RepoSize Release LICENSE FOSSA Status CII Best Practices OpenSSF Scorecard Gurubase CLOMonitor

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

cncf_logo

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

整体架构

volcano

演讲

生态系统

使用案例

快速入门指南

前提条件

  • 支持 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.36Kubernetes 1.35Kubernetes 1.34Kubernetes 1.33Kubernetes 1.32Kubernetes 1.31Kubernetes 1.30Kubernetes 1.29Kubernetes 1.28Kubernetes 1.27Kubernetes 1.26Kubernetes 1.25Kubernetes 1.24Kubernetes 1.23Kubernetes 1.22Kubernetes 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 并申请加入群聊。