volcano.sh/volcano@v1.9.0/README.md (about) 1 <a href="https://volcano.sh/"> 2 <img src="https://raw.githubusercontent.com/volcano-sh/volcano/master/docs/images/volcano-horizontal-color.png"/> 3 </a> 4 5 ------- 6 7 [](https://travis-ci.org/volcano-sh/volcano) 8 [](https://goreportcard.com/report/github.com/volcano-sh/volcano) 9 [](https://github.com/volcano-sh/volcano) 10 [](https://github.com/volcano-sh/volcano/releases) 11 [](https://github.com/volcano-sh/volcano/blob/master/LICENSE) 12 [](https://bestpractices.coreinfrastructure.org/projects/3012) 13 14 15 [Volcano](https://volcano.sh/) is a batch system built on Kubernetes. It provides a suite of mechanisms that are commonly required by 16 many classes of batch & elastic workload including: machine learning/deep learning, bioinformatics/genomics and 17 other "big data" applications. These types of applications typically run on generalized domain frameworks like 18 TensorFlow, Spark, Ray, PyTorch, MPI, etc, which Volcano integrates with. 19 20 Volcano builds upon a decade and a half of experience running a wide 21 variety of high performance workloads at scale using several systems 22 and platforms, combined with best-of-breed ideas and practices from 23 the open source community. 24 25 Until June 2021, Volcano has been widely used around the world at a variety of industries such as Internet/Cloud/Finance/ 26 Manufacturing/Medical. More than 20 companies or institutions are not only end users but also active contributors. Hundreds 27 of contributors are taking active part in the code commit/PR review/issue discussion/docs update and design provision. We 28 are looking forward to your participation. 29 30 **NOTE**: the scheduler is built based on [kube-batch](https://github.com/kubernetes-sigs/kube-batch); 31 refer to [#241](https://github.com/volcano-sh/volcano/issues/241) and [#288](https://github.com/volcano-sh/volcano/pull/288) for more detail. 32 33  34 35 Volcano is an incubating project of the [Cloud Native Computing Foundation](https://cncf.io/) (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. 36 37 ## Overall Architecture 38 39  40 41 ## Talks 42 43 - [Intro: Kubernetes Batch Scheduling @ KubeCon 2019 EU](https://sched.co/MPi7) 44 - [Volcano 在 Kubernetes 中运行高性能作业实践 @ ArchSummit 2019](https://archsummit.infoq.cn/2019/shenzhen/presentation/1817) 45 - [Volcano:基于云原生的高密计算解决方案 @ Huawei Connection 2019](https://e.huawei.com/cn/material/event/HC/09099dce0070415e9f26ada51b2216d7) 46 - [Improving Performance of Deep Learning Workloads With Volcano @ KubeCon 2019 NA](https://sched.co/UaZi) 47 - [Batch Capability of Kubernetes Intro @ KubeCon 2019 NA](https://sched.co/Uajv) 48 - [Intro: Kubernetes Batch Scheduling @ KubeCon 2019 EU](https://sched.co/MPi7) 49 50 51 ## Ecosystem 52 53 - [spark-operator](https://github.com/GoogleCloudPlatform/spark-on-k8s-operator/blob/master/docs/volcano-integration.md) 54 - [kubeflow/tf-operator](https://www.kubeflow.org/docs/use-cases/job-scheduling/) 55 - [kubeflow/arena](https://github.com/kubeflow/arena/blob/master/docs/training/volcanojob/volcanojob.md) 56 - [Horovod/MPI](https://github.com/volcano-sh/volcano/tree/master/example/integrations/mpi) 57 - [paddlepaddle](https://github.com/volcano-sh/volcano/tree/master/example/integrations/paddlepaddle) 58 - [cromwell](https://github.com/broadinstitute/cromwell/blob/develop/docs/backends/Volcano.md) 59 - [KubeRay](https://ray-project.github.io/kuberay/guidance/volcano-integration) 60 61 ## Quick Start Guide 62 63 ### Prerequisites 64 65 - Kubernetes 1.12+ with CRD support 66 67 68 You can try Volcano by one of the following two ways. 69 70 Note: 71 * For Kubernetes v1.17+ use CRDs under config/crd/bases (recommended) 72 * For Kubernetes versions < v1.16 use CRDs under config/crd/v1beta1 (deprecated) 73 74 ### Install with YAML files 75 76 Install Volcano on an existing Kubernetes cluster. This way is both available for x86_64 and arm64 architecture. 77 78 ``` 79 kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/release-1.9/installer/volcano-development.yaml 80 ``` 81 82 Enjoy! Volcano will create the following resources in `volcano-system` namespace. 83 84 85 ``` 86 NAME READY STATUS RESTARTS AGE 87 pod/volcano-admission-5bd5756f79-dnr4l 1/1 Running 0 96s 88 pod/volcano-admission-init-4hjpx 0/1 Completed 0 96s 89 pod/volcano-controllers-687948d9c8-nw4b4 1/1 Running 0 96s 90 pod/volcano-scheduler-94998fc64-4z8kh 1/1 Running 0 96s 91 92 NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE 93 service/volcano-admission-service ClusterIP 10.98.152.108 <none> 443/TCP 96s 94 95 NAME READY UP-TO-DATE AVAILABLE AGE 96 deployment.apps/volcano-admission 1/1 1 1 96s 97 deployment.apps/volcano-controllers 1/1 1 1 96s 98 deployment.apps/volcano-scheduler 1/1 1 1 96s 99 100 NAME DESIRED CURRENT READY AGE 101 replicaset.apps/volcano-admission-5bd5756f79 1 1 1 96s 102 replicaset.apps/volcano-controllers-687948d9c8 1 1 1 96s 103 replicaset.apps/volcano-scheduler-94998fc64 1 1 1 96s 104 105 NAME COMPLETIONS DURATION AGE 106 job.batch/volcano-admission-init 1/1 48s 96s 107 108 ``` 109 110 ### Install via helm 111 112 To install official release, please visit to [helm-charts](https://github.com/volcano-sh/helm-charts) for details. 113 114 ```bash 115 helm repo add volcano-sh https://volcano-sh.github.io/helm-charts 116 helm install volcano volcano-sh/volcano -n volcano-system --create-namespace 117 ``` 118 119 Install from source code for developers: 120 121 ```bash 122 helm install volcano installer/helm/chart/volcano --namespace volcano-system --create-namespace 123 124 # list helm release 125 helm list -n volcano-system 126 ``` 127 128 ### Install from code 129 130 If you don't have a kubernetes cluster, try one-click install from code base: 131 132 ```bash 133 ./hack/local-up-volcano.sh 134 ``` 135 136 This way is only available for x86_64 temporarily. 137 138 ### Install monitoring system 139 140 If you want to get prometheus and grafana volcano dashboard after volcano installed, try following commands: 141 142 ```bash 143 make TAG=v1.9.0 generate-yaml 144 kubectl create -f _output/release/volcano-monitoring-v1.9.0.yaml 145 ``` 146 147 ## Kubernetes compatibility 148 149 | | 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 | 150 |-----------------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------|-----------------| 151 | Volcano v1.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | - | - | - | - | - | 152 | Volcano v1.7 | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | 153 | Volcano v1.8 | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | - | 154 | Volcano v1.9 | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 155 | Volcano HEAD (master) | - | - | - | - | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | 156 157 Key: 158 * `✓` Volcano and the Kubernetes version are exactly compatible. 159 * `+` Volcano has features or API objects that may not be present in the Kubernetes version. 160 * `-` The Kubernetes version has features or API objects that Volcano can't use. 161 162 163 ## Meeting 164 165 Community weekly meeting for Asia: 15:00 - 16:00 (UTC+8) Friday. ([Convert to your timezone.](https://www.thetimezoneconverter.com/?t=10%3A00&tz=GMT%2B8&)) 166 167 Community biweekly meeting for America: 08:30 - 09:30 (UTC-8) Thursday. ([Convert to your timezone.](https://www.thetimezoneconverter.com/?t=10%3A00&tz=GMT%2B8&)) 168 169 Community meeting for Europe is ongoing on demand now. If you have some ideas or topics to discuss, please leave message 170 in the [slack](https://cloud-native.slack.com/archives/C011GJDQS0N). Maintainers will contact with you and book an open meeting for that. 171 172 Resources: 173 - [Meeting notes and agenda](https://docs.google.com/document/d/1YLbF8zjZBiR9PbXQPB22iuc_L0Oui5A1lddVfRnZrqs/edit) 174 - [Meeting link](https://zoom.us/j/91804791393) 175 - [Meeting Calendar](https://calendar.google.com/calendar/b/1/embed?src=volcano.sh.bot@gmail.com) | [Subscribe](https://calendar.google.com/calendar/b/1?cid=dm9sY2Fuby5zaC5ib3RAZ21haWwuY29t) 176 177 ## Contact 178 179 If you have any question, feel free to reach out to us in the following ways: 180 181 [Volcano Slack Channel](https://cloud-native.slack.com/archives/C011GJDQS0N) | [Join](https://slack.cncf.io/) 182 183 [Mailing List](https://groups.google.com/forum/#!forum/volcano-sh) 184 185 Wechat: Add WeChat account `k8s2222` (华为云小助手2号) to let her pull you into the group.