A Cloud Native Batch System (Project under CNCF)
Go to file
Wenbo Zhang 6127f200a6 add pdb support feature gate
Signed-off-by: Wenbo Zhang <zhangwenbo40@huawei.com>
2024-02-26 10:11:49 +08:00
.github fix ci error 2024-01-25 16:31:44 +08:00
cmd Merge pull request #3269 from lowang-bh/mockSchedulerCache 2024-02-02 14:10:02 +08:00
config add pdb support feature gate 2024-02-26 10:11:49 +08:00
defs Update images version. 2020-02-22 11:06:00 +08:00
docs Merge pull request #3132 from wuyueandrew/nodegroup-issue3131 2024-01-17 19:03:48 +08:00
example chore: remove refs to deprecated io/ioutil 2023-11-09 17:59:12 +08:00
hack Add license lint check 2024-01-22 19:26:00 +08:00
installer Merge pull request #3295 from guoqinwill/us-adapt-1.29 2024-02-01 16:20:58 +08:00
licenses update development information and Licenses Lint for adapt k8s 1.29 ;and modify some klogs formats 2024-01-26 15:07:11 +08:00
pkg add pdb support feature gate 2024-02-26 10:11:49 +08:00
test/e2e k8s v1.29 migrated the volume binding to contextual logging and some apis changed 2024-01-25 16:31:32 +08:00
.gitignore use one command of helm install 2023-07-23 15:00:10 +08:00
.golangci.yml k8s1.27 added "return Skip in PreFilter" when calculates the InterPodAffinity for each existing pod on each node 2023-09-06 10:01:32 +08:00
CHANGELOG.md Add change log for v0.4.2 2020-07-31 10:37:02 +08:00
CHANGELOG_1.0.md Add change log for 1.0.1 2020-07-30 15:18:54 +08:00
GOVERNANCE.md Updating some files of the documentation 2022-01-26 22:32:41 +05:30
LICENSE Initial commit 2019-01-08 09:55:05 +08:00
MAINTAINERS.md update MAINTAINERS 2023-11-29 15:01:29 +08:00
Makefile add pdb support feature gate 2024-02-26 10:11:49 +08:00
Makefile.def Update images version. 2020-02-22 11:06:00 +08:00
OWNERS Merge branch 'master' into master 2024-01-19 15:12:33 +08:00
README.md update development information and Licenses Lint for adapt k8s 1.29 ;and modify some klogs formats 2024-01-26 15:07:11 +08:00
SECURITY.md Updating some files of the documentation 2022-01-26 22:32:41 +05:30
code_of_conduct.md Updating some files of the documentation 2022-01-26 22:32:41 +05:30
community-membership.md Add the requested changes 2022-01-26 22:44:25 +05:30
contribute.md Add the requested changes 2022-01-26 22:44:25 +05:30
go.mod modify gomod for volcano supports k8s v1.29 2024-01-25 16:19:37 +08:00
go.sum modify gomod for volcano supports k8s v1.29 2024-01-25 16:19:37 +08:00

README.md


Build Status Go Report Card RepoSize Release LICENSE CII Best Practices

Volcano is a batch system built on Kubernetes. It provides a suite of mechanisms that are commonly required by many classes of batch & elastic workload including: machine learning/deep learning, bioinformatics/genomics and other "big data" applications. These types of applications typically run on generalized domain frameworks like TensorFlow, Spark, Ray, PyTorch, MPI, etc, which Volcano integrates with.

Volcano builds upon a decade and a half of experience running a wide variety of high performance workloads at scale using several systems and platforms, combined with best-of-breed ideas and practices from the open source community.

Until June 2021, Volcano has been widely used around the world at a variety of industries such as Internet/Cloud/Finance/ Manufacturing/Medical. More than 20 companies or institutions are not only end users but also active contributors. Hundreds of contributors are taking active part in the code commit/PR review/issue discussion/docs update and design provision. We are looking forward to your participation.

NOTE: the scheduler is built based on kube-batch; refer to #241 and #288 for more detail.

cncf_logo

Volcano is an incubating project of the Cloud Native Computing Foundation (CNCF). Please consider joining the CNCF if you are an organization that wants to take an active role in supporting the growth and evolution of the cloud native ecosystem.

Overall Architecture

volcano

Talks

Ecosystem

Quick Start Guide

Prerequisites

  • Kubernetes 1.12+ with CRD support

You can try Volcano by one of the following two ways.

Note:

  • For Kubernetes v1.17+ use CRDs under config/crd/bases (recommended)
  • For Kubernetes versions < v1.16 use CRDs under config/crd/v1beta1 (deprecated)

Install with YAML files

Install Volcano on an existing Kubernetes cluster. This way is both available for x86_64 and arm64 architecture.

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

Enjoy! Volcano will create the following resources in volcano-system namespace.

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

Install via helm

To install official release, please visit to helm-charts for details.

helm repo add volcano-sh https://volcano-sh.github.io/helm-charts
helm install volcano volcano-sh/volcano -n volcano-system --create-namespace

Install from source code for developers:

helm install volcano installer/helm/chart/volcano --namespace volcano-system --create-namespace

# list helm release
helm list -n volcano-system

Install from code

If you don't have a kubernetes cluster, try one-click install from code base:

./hack/local-up-volcano.sh

This way is only available for x86_64 temporarily.

Install monitoring system

If you want to get prometheus and grafana volcano dashboard after volcano installed, try following commands:

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

Kubernetes compatibility

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
Volcano v1.6 - - - - - -
Volcano v1.7 - - -
Volcano v1.8 - - -
Volcano HEAD (master) - - - -

Key:

  • Volcano and the Kubernetes version are exactly compatible.
  • + Volcano has features or API objects that may not be present in the Kubernetes version.
  • - The Kubernetes version has features or API objects that Volcano can't use.

Meeting

Community weekly meeting for Asia: 15:00 - 16:00 (UTC+8) Friday. (Convert to your timezone.)

Community biweekly meeting for America: 08:30 - 09:30 (UTC-8) Thursday. (Convert to your timezone.)

Community meeting for Europe is ongoing on demand now. If you have some ideas or topics to discuss, please leave message in the slack. Maintainers will contact with you and book an open meeting for that.

Resources:

Contact

If you have any question, feel free to reach out to us in the following ways:

Volcano Slack Channel | Join

Mailing List

Wechat: Add WeChat account k8s2222 (华为云小助手2号) to let her pull you into the group.