|
| 1 | +## Volcano |
| 2 | + |
| 3 | +Volcano is a batch system built on Kubernetes. It provides a suite of mechanisms currently missing from |
| 4 | +Kubernetes that are commonly required by many classes of batch & elastic workload including: |
| 5 | + |
| 6 | +1. machine learning/deep learning, |
| 7 | +2. bioinformatics/genomics, and |
| 8 | +3. other "big data" applications. |
| 9 | + |
| 10 | +## Prerequisites |
| 11 | + |
| 12 | +- Kubernetes 1.12+ with CRD support |
| 13 | + |
| 14 | +## Installing volcano via yaml file |
| 15 | + |
| 16 | +All-in-one yaml has been generated for quick deployment. Try command: |
| 17 | +```$xslt |
| 18 | +kubectl apply -f volcano-v0.0.x.yaml |
| 19 | +``` |
| 20 | +Check the status in namespace `volcano-system` |
| 21 | +```$xslt |
| 22 | +$kubectl get all -n volcano-system |
| 23 | +NAME READY STATUS RESTARTS AGE |
| 24 | +pod/volcano-admission-56f5465597-2pbfx 1/1 Running 0 36s |
| 25 | +pod/volcano-admission-init-pjgf2 0/1 Completed 0 36s |
| 26 | +pod/volcano-controllers-687948d9c8-zdtvw 1/1 Running 0 36s |
| 27 | +pod/volcano-scheduler-94998fc64-86hzn 1/1 Running 0 36s |
| 28 | +
|
| 29 | +
|
| 30 | +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE |
| 31 | +service/volcano-admission-service ClusterIP 10.103.235.185 <none> 443/TCP 36s |
| 32 | +
|
| 33 | +
|
| 34 | +NAME READY UP-TO-DATE AVAILABLE AGE |
| 35 | +deployment.apps/volcano-admission 1/1 1 1 36s |
| 36 | +deployment.apps/volcano-controllers 1/1 1 1 36s |
| 37 | +deployment.apps/volcano-scheduler 1/1 1 1 36s |
| 38 | +
|
| 39 | +NAME DESIRED CURRENT READY AGE |
| 40 | +replicaset.apps/volcano-admission-56f5465597 1 1 1 36s |
| 41 | +replicaset.apps/volcano-controllers-687948d9c8 1 1 1 36s |
| 42 | +replicaset.apps/volcano-scheduler-94998fc64 1 1 1 36s |
| 43 | +``` |
| 44 | +Volcano scheduler utilize `queues.scheduling.incubator.k8s.io` to share resource, therefore default queue is required before usage. |
| 45 | +```$xslt |
| 46 | +kubectl apply -f default-queue.yaml |
| 47 | +``` |
| 48 | + |
| 49 | +## Installing volcano via helm charts |
| 50 | + |
| 51 | +To install the volcano with chart: |
| 52 | + |
| 53 | +```bash |
| 54 | +helm install helm/chart/volcano --namespace <namespace> --name <specified-name> |
| 55 | + |
| 56 | +e.g : |
| 57 | +helm install helm/chart/volcano --namespace volcano-trial --name volcano-trial |
| 58 | +``` |
| 59 | + |
| 60 | +This command deploys volcano in kubernetes cluster with default configuration. The [configuration](#configuration) section lists the parameters that can be configured during installation. |
| 61 | + |
| 62 | + |
| 63 | +## Uninstalling the Chart |
| 64 | + |
| 65 | +```bash |
| 66 | +$ helm delete volcano-release --purge |
| 67 | +``` |
| 68 | + |
| 69 | +## Configuration |
| 70 | + |
| 71 | +The following are the list configurable parameters of Volcano Chart and their default values. |
| 72 | + |
| 73 | +| Parameter|Description|Default Value| |
| 74 | +|----------------|-----------------|----------------------| |
| 75 | +|`basic.image_tag_version`| Docker image version Tag | `latest`| |
| 76 | +|`basic.controller_image_name`|Controller Docker Image Name|`volcanosh/vc-controllers`| |
| 77 | +|`basic.scheduler_image_name`|Scheduler Docker Image Name|`volcanosh/vc-scheduler`| |
| 78 | +|`basic.admission_image_name`|Admission Controller Image Name|`volcanosh/vc-admission`| |
| 79 | +|`basic.admission_secret_name`|Volcano Admission Secret Name|`volcano-admission-secret`| |
| 80 | +|`basic.scheduler_config_file`|Configuration File name for Scheduler|`kube-batch.conf`| |
| 81 | +|`basic.image_pull_secret`|Image Pull Secret|`""`| |
| 82 | +|`basic.image_pull_policy`|Image Pull Policy|`IfNotPresent`| |
| 83 | +|`basic.admission_app_name`|Admission Controller App Name|`volcano-admission`| |
| 84 | +|`basic.controller_app_name`|Controller App Name|`volcano-controller`| |
| 85 | +|`basic.scheduler_app_name`|Scheduler App Name|`volcano-scheduler`| |
| 86 | + |
| 87 | +Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example, |
| 88 | + |
| 89 | +```bash |
| 90 | +$ helm install --name volcano-release --set basic.image_pull_policy=Always volcano/volcano |
| 91 | +``` |
| 92 | + |
| 93 | +The above command set image pull policy to `Always`, so docker image will be pulled each time. |
| 94 | + |
| 95 | + |
| 96 | +Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example, |
| 97 | + |
| 98 | +```bash |
| 99 | +$ helm install --name volcano-release -f values.yaml volcano/volcano |
| 100 | +``` |
| 101 | + |
| 102 | +> **Tip**: You can use the default [values.yaml](chart/volcano/values.yaml) |
0 commit comments