Installation
The easiest way to get started with Volcano is to download the release package from GitHub and follow the following steps:
Prerequisites
- A Kubernetes cluster of V1.13 or later is available.
- [Optional] Helm is downloaded and installed for your cluster. For details on how to install the Helm, click here. (This operation is required only if Volcano is installed using Helm.)
- The latest version of Volcano is downloaded from here.
The release package is decompressed.
```
tar -xvf volcano-{Version}-linux-gnu.tar.gz
cd volcano-{Version}-linux-gnu
ll
total 60 drwxr-xr-x 4 root1 root1 4096 Jul 23 11:38 ./ drwxr-xr-x 11 root1 root1 12288 Jul 23 11:37 ../ drwxr-xr-x 3 root1 root1 4096 Jul 16 16:15 bin/ -rw-r—r— 1 root1 root1 153 Jul 16 16:15 default-queue.yaml drwxr-xr-x 3 root1 root1 4096 Jul 16 16:15 helm/ -rw-r—r— 1 root1 root1 4169 Jul 16 16:15 README.md -rw-r—r— 1 root1 root1 23453 Jul 16 16:15 volcano-{Version}.yaml
```
Installation Modes
Installation Using Deployment
Create a deployment using the volcano-{Version}.yaml
file embedded in the release package.
# kubectl apply -f volcano-{Version}.yaml
namespace/volcano-system created
configmap/volcano-scheduler-configmap created
serviceaccount/volcano-scheduler created
clusterrole.rbac.authorization.k8s.io/volcano-scheduler created
clusterrolebinding.rbac.authorization.k8s.io/volcano-scheduler-role created
deployment.apps/volcano-scheduler created
serviceaccount/volcano-admission created
clusterrole.rbac.authorization.k8s.io/volcano-admission created
clusterrolebinding.rbac.authorization.k8s.io/volcano-admission-role created
deployment.apps/volcano-admission created
service/volcano-admission-service created
job.batch/volcano-admission-init created
serviceaccount/volcano-controllers created
clusterrole.rbac.authorization.k8s.io/volcano-controllers created
clusterrolebinding.rbac.authorization.k8s.io/volcano-controllers-role created
deployment.apps/volcano-controllers created
customresourcedefinition.apiextensions.k8s.io/jobs.batch.volcano.sh created
customresourcedefinition.apiextensions.k8s.io/commands.bus.volcano.sh created
customresourcedefinition.apiextensions.k8s.io/podgroups.scheduling.incubator.k8s.io created
customresourcedefinition.apiextensions.k8s.io/queues.scheduling.incubator.k8s.io created
customresourcedefinition.apiextensions.k8s.io/podgroups.scheduling.sigs.dev created
customresourcedefinition.apiextensions.k8s.io/queues.scheduling.sigs.dev created
Verify running status of Volcano components.
# kubectl get all -n volcano-system
NAME READY STATUS RESTARTS AGE
pod/volcano-admission-5bd5756f79-p89tx 1/1 Running 0 6m10s
pod/volcano-admission-init-d4dns 0/1 Completed 0 6m10s
pod/volcano-controllers-687948d9c8-bd28m 1/1 Running 0 6m10s
pod/volcano-scheduler-94998fc64-9df5g 1/1 Running 0 6m10s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/volcano-admission-service ClusterIP 10.96.140.22 <none> 443/TCP 6m10s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/volcano-admission 1/1 1 1 6m10s
deployment.apps/volcano-controllers 1/1 1 1 6m10s
deployment.apps/volcano-scheduler 1/1 1 1 6m10s
NAME DESIRED CURRENT READY AGE
replicaset.apps/volcano-admission-5bd5756f79 1 1 1 6m10s
replicaset.apps/volcano-controllers-687948d9c8 1 1 1 6m10s
replicaset.apps/volcano-scheduler-94998fc64 1 1 1 6m10s
NAME COMPLETIONS DURATION AGE
job.batch/volcano-admission-init 1/1 28s 6m10s
After the configuration is complete, you can use Volcano to deploy the AI/ML and big data workloads.
Installation Using Helm
If you want to use Helm to deploy Volcano, ensure that you have Helm charts installed in your cluster.
Step: 1
Create a new namespace.
# kubectl create namespace volcano-system
namespace/volcano-system created
Step: 2
Use Helm charts to install Volcano.
# helm install helm/chart/volcano --namespace volcano-system --name volcano
NAME: volcano
LAST DEPLOYED: Tue Jul 23 20:07:29 2019
NAMESPACE: volcano-system
STATUS: DEPLOYED
RESOURCES:
==> v1/ClusterRole
NAME AGE
volcano-admission 1s
volcano-controllers 1s
volcano-scheduler 1s
==> v1/ClusterRoleBinding
NAME AGE
volcano-admission-role 1s
volcano-controllers-role 1s
volcano-scheduler-role 1s
==> v1/ConfigMap
NAME DATA AGE
volcano-scheduler-configmap 2 1s
==> v1/Deployment
NAME READY UP-TO-DATE AVAILABLE AGE
volcano-admission 0/1 1 0 1s
volcano-controllers 0/1 1 0 1s
volcano-scheduler 0/1 1 0 1s
==> v1/Job
NAME COMPLETIONS DURATION AGE
volcano-admission-init 0/1 1s 1s
==> v1/Pod(related)
NAME READY STATUS RESTARTS AGE
volcano-admission-b45b7b76-84jmw 0/1 ContainerCreating 0 1s
volcano-admission-init-fw47j 0/1 ContainerCreating 0 1s
volcano-controllers-5f66f8d76c-27584 0/1 ContainerCreating 0 1s
volcano-scheduler-bb4467966-z642p 0/1 Pending 0 1s
==> v1/Service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
volcano-admission-service ClusterIP 10.107.128.208 <none> 443/TCP 1s
==> v1/ServiceAccount
NAME SECRETS AGE
volcano-admission 1 1s
volcano-controllers 1 1s
volcano-scheduler 1 1s
==> v1beta1/CustomResourceDefinition
NAME AGE
podgroups.scheduling.sigs.dev 1s
queues.scheduling.sigs.dev 1s
NOTES:
Thank you for installing volcano.
Your release is named volcano.
For more information on volcano, visit:
https://volcano.sh/
Step: 3
Verify running status of Volcano components.
# kubectl get all -n volcano-system
NAME READY STATUS RESTARTS AGE
pod/volcano-admission-b45b7b76-84jmw 0/1 ContainerCreating 0 4m42s
pod/volcano-admission-init-fw47j 0/1 ImagePullBackOff 0 4m42s
pod/volcano-controllers-5f66f8d76c-27584 0/1 ImagePullBackOff 0 4m42s
pod/volcano-scheduler-bb4467966-z642p 0/1 ImagePullBackOff 0 4m42s
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/volcano-admission-service ClusterIP 10.107.128.208 <none> 443/TCP 4m42s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/volcano-admission 0/1 1 0 4m42s
deployment.apps/volcano-controllers 0/1 1 0 4m42s
deployment.apps/volcano-scheduler 0/1 1 0 4m42s
NAME DESIRED CURRENT READY AGE
replicaset.apps/volcano-admission-b45b7b76 1 1 0 4m42s
replicaset.apps/volcano-controllers-5f66f8d76c 1 1 0 4m42s
replicaset.apps/volcano-scheduler-bb4467966 1 1 0 4m42s
NAME COMPLETIONS DURATION AGE
job.batch/volcano-admission-init 0/1 4m42s 4m42s
After Volcano is installed, you can use some examples provided in here to verify the installation.