volcano-ext:基于 Kubernetes 的批处理系统项目

volcano调度器,在原有调度器的基础上增加批量调度接口

分支3Tags37
文件最后提交记录最后更新时间
1 年前
1 年前
1 年前
6 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
1 年前
5 年前
5 年前
4 年前
7 年前
2 年前
1 年前
1 年前
1 年前
1 年前
4 年前
4 年前
4 年前
4 年前
1 年前
1 年前

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

Volcano 是一个构建在 Kubernetes 之上的批处理系统。它提供了一套机制,这些机制是许多类别的批处理和弹性工作负载通常所需要的,包括:机器学习/深度学习、生物信息学/基因组学以及其他“大数据”应用。这类应用通常运行在通用领域框架上,如 TensorFlow、Spark、Ray、PyTorch、MPI 等,Volcano 可与这些框架集成。

Volcano 借鉴了十五年来在多种系统和平台上大规模运行各种高性能工作负载的经验,并融合了开源社区中各种优秀的思想和实践。

截至 2021 年 6 月,Volcano 已在全球范围内的互联网、云、金融、制造、医疗等多个行业得到广泛应用。超过 20 家公司或机构不仅是最终用户,也是积极的贡献者。数百名贡献者积极参与代码提交、PR 审查、问题讨论、文档更新和设计规划。我们期待您的参与。

注意:调度器基于 kube-batch 构建;更多详情请参考 #241#288

cncf_logo

Volcano 是 Cloud Native Computing Foundation(CNCF)的孵化项目。如果您所在的组织希望在支持云原生生态系统的发展和演进方面发挥积极作用,请考虑加入 CNCF。

整体架构

volcano

相关演讲

生态系统

快速入门指南

前提条件

  • 支持 CRD 的 Kubernetes 1.12+ 版本

您可以通过以下两种方式之一体验 Volcano。

注意:

  • 对于 Kubernetes v1.17+ 版本,请使用 config/crd/bases 目录下的 CRD(推荐)
  • 对于 Kubernetes 版本 < v1.16,请使用 config/crd/v1beta1 目录下的 CRD(已弃用)

使用 YAML 文件安装

在现有的 Kubernetes 集群上安装 Volcano。此方法同时适用于 x86_64 和 arm64 架构。

kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/release-1.10/installer/volcano-development.yaml

开始使用吧!Volcano 将在 volcano-system 命名空间中创建以下资源。

NAME                                       READY   STATUS      RESTARTS   AGE
pod/volcano-admission-5bd5756f79-dnr4l     1/1     Running     0          96s
pod/volcano-admission-init-4hjpx           0/1     Completed   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 后获取 prometheus 和 grafana volcano 仪表盘,请尝试以下命令:

make TAG=v1.10.0 generate-yaml
kubectl create -f _output/release/volcano-monitoring-v1.10.0.yaml

Kubernetes 兼容性

Kubernetes 1.17 Kubernetes 1.18 Kubernetes 1.19 Kubernetes 1.20 Kubernetes 1.21 Kubernetes 1.22 Kubernetes 1.23 Kubernetes 1.24 Kubernetes 1.25 Kubernetes 1.26 Kubernetes 1.27 Kubernetes 1.28 Kubernetes 1.29 Kubernetes 1.30
Volcano v1.6 - - - - - - -
Volcano v1.7 - - - _
Volcano v1.8 - - - -
Volcano v1.9 - - - - -
Volcano v1.10 - - - -
Volcano HEAD (master) - - - -

关键说明:

  • Volcano 与该 Kubernetes 版本完全兼容。
  • + Volcano 包含某些该 Kubernetes 版本可能不具备的功能或 API 对象。
  • - 该 Kubernetes 版本包含 Volcano 无法使用的功能或 API 对象。

会议

亚洲社区周会:每周五 15:00 - 16:00(UTC+8)。(转换为您的时区。)

美洲社区双周会:每周四 08:30 - 09:30(UTC-8)。(转换为您的时区。)

欧洲社区会议目前按需举行。如果您有任何想法或议题需要讨论,请在Slack留言。维护者将与您联系并为此安排公开会议。

资源:

联系方式

如有任何问题,欢迎通过以下方式与我们联系:

Volcano Slack 频道 | 加入

邮件列表

微信:添加微信账号 k8s2222(华为云小助手2号),让她拉您入群。

项目介绍

volcano调度器,在原有调度器的基础上增加批量调度接口

定制我的领域