volcano.sh/volcano@v1.9.0/installer/README.md (about)

     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  
    18  ```$xslt
    19  kubectl apply -f volcano-v0.0.x.yaml
    20  ```
    21  
    22  Check the status in namespace `volcano-system`
    23  
    24  ```$xslt
    25  $kubectl get all -n volcano-system
    26  NAME                                       READY   STATUS      RESTARTS   AGE
    27  pod/volcano-admission-56f5465597-2pbfx     1/1     Running     0          36s
    28  pod/volcano-admission-init-pjgf2           0/1     Completed   0          36s
    29  pod/volcano-controllers-687948d9c8-zdtvw   1/1     Running     0          36s
    30  pod/volcano-scheduler-94998fc64-86hzn      1/1     Running     0          36s
    31  
    32  
    33  NAME                                TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)   AGE
    34  service/volcano-admission-service   ClusterIP   10.103.235.185   <none>        443/TCP   36s
    35  
    36  
    37  NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
    38  deployment.apps/volcano-admission     1/1     1            1           36s
    39  deployment.apps/volcano-controllers   1/1     1            1           36s
    40  deployment.apps/volcano-scheduler     1/1     1            1           36s
    41  
    42  NAME                                             DESIRED   CURRENT   READY   AGE
    43  replicaset.apps/volcano-admission-56f5465597     1         1         1       36s
    44  replicaset.apps/volcano-controllers-687948d9c8   1         1         1       36s
    45  replicaset.apps/volcano-scheduler-94998fc64      1         1         1       36s
    46  ```
    47  
    48  ## Installing volcano via helm charts
    49  
    50  To install the volcano with chart:
    51  
    52  ```bash
    53  helm install <specified-name> helm/chart/volcano --namespace <namespace> --create-namespace
    54  
    55  e.g :
    56  helm install volcano-trial helm/chart/volcano --namespace volcano-trial --create-namespace
    57  ```
    58  
    59  This command deploys volcano in kubernetes cluster with default configuration.  The [configuration](#configuration) section lists the parameters that can be configured during installation.
    60  
    61  To list the volcano chart:
    62  
    63  ```bash
    64  helm list -n <namespace>
    65  
    66  e.g:
    67   helm list -n volcano-trial
    68  ```
    69  
    70  ## Uninstalling the Chart
    71  
    72  ```bash
    73  $ helm delete volcano-release --purge
    74  ```
    75  
    76  ## Configuration
    77  
    78  The following are the list configurable parameters of Volcano Chart and their default values.
    79  
    80  | Parameter|Description|Default Value|
    81  |----------------|-----------------|----------------------|
    82  |`basic.image_tag_version`| Docker image version Tag | `latest`|
    83  |`basic.controller_image_name`|Controller Docker Image Name|`volcanosh/vc-controller-manager`|
    84  |`basic.scheduler_image_name`|Scheduler Docker Image Name|`volcanosh/vc-scheduler`|
    85  |`basic.admission_image_name`|Admission Controller Image Name|`volcanosh/vc-webhook-manager`|
    86  |`basic.admission_secret_name`|Volcano Admission Secret Name|`volcano-admission-secret`|
    87  |`basic.scheduler_config_file`|Configuration File name for Scheduler|`config/volcano-scheduler.conf`|
    88  |`basic.image_pull_secret`|Image Pull Secret|`""`|
    89  |`basic.image_pull_policy`|Image Pull Policy|`Always`|
    90  |`basic.admission_app_name`|Admission Controller App Name|`volcano-admission`|
    91  |`basic.controller_app_name`|Controller App Name|`volcano-controller`|
    92  |`basic.scheduler_app_name`|Scheduler App Name|`volcano-scheduler`|
    93  |`custom.metrics_enable`|Whether to Enable Metrics|`false`|
    94  |`custom.admission_enable`|Whether to Enable Admission|`true`|
    95  |`custom.admission_replicas`|The number of Admission pods to run|`1`|
    96  |`custom.controller_enable`|Whether to Enable Controller|`true`|
    97  |`custom.controller_replicas`|The number of Controller pods to run|`1`|
    98  |`custom.scheduler_enable`|Whether to Enable Scheduler|`true`|
    99  |`custom.scheduler_replicas`|The number of Scheduler pods to run|`1`|
   100  |`custom.leader_elect_enable`|Whether to Enable leader elect|`false`|
   101  |`custom.default_affinity`|Default affinity for Admission/Controller/Scheduler pods|`~`|
   102  |`custom.admission_affinity`|Affinity for Admission pods|`~`|
   103  |`custom.controller_affinity`|Affinity for Controller pods|`~`|
   104  |`custom.scheduler_affinity`|Affinity for Scheduler pods|`~`|
   105  |`custom.default_tolerations`|Default tolerations for Admission/Controller/Scheduler pods|`~`|
   106  |`custom.admission_tolerations`|Tolerations for Admission pods|`~`|
   107  |`custom.controller_tolerations`|Tolerations for Controller pods|`~`|
   108  |`custom.scheduler_tolerations`|Tolerations for Scheduler pods|`~`|
   109  |`custom.default_sc`|Default securityContext for Admission/Controller/Scheduler pods|`~`|
   110  |`custom.admission_sc`|securityContext for Admission pods|`~`|
   111  |`custom.controller_sc`|securityContext for Controller pods|`~`|
   112  |`custom.scheduler_sc`|securityContext for Scheduler pods|`~`|
   113  |`custom.default_ns`|Default nodeSelector for Admission/Controller/Scheduler pods|`~`|
   114  |`custom.admission_ns`|nodeSelector for Admission pods|`~`|
   115  |`custom.controller_ns`|nodeSelector for Controller pods|`~`|
   116  |`custom.scheduler_ns`|nodeSelector for Scheduler pods|`~`|
   117  |`custom.admission_podLabels`|Pod labels for Admission pods|`~`|
   118  |`custom.controller_podLabels`|Pod labels for Controller pods|`~`|
   119  |`custom.scheduler_podLabels`|Pod labels for Scheduler pods|`~`|
   120  |`custom.admission_labels`|Labels for Admission deployment and job|`~`|
   121  |`custom.controller_labels`|Labels for Controller deployment|`~`|
   122  |`custom.scheduler_labels`|Labels for Scheduler deployment|`~`|
   123  |`custom.admission_resources`|Resources for Admission pods|`~`|
   124  |`custom.controller_resources`|Resources for Controller pods|`~`|
   125  |`custom.scheduler_resources`|Resources for Scheduler pods|`~`|
   126  |`custom.webhooks_namespace_selector_expressions`|Additional namespace selector expressions for Volcano admission webhooks|`~`|
   127  
   128  Specify each parameter using the `--set key=value[,key=value]` argument to `helm install`. For example,
   129  
   130  ```bash
   131  $ helm install --name volcano-release --set basic.image_pull_policy=Always volcano/volcano
   132  ```
   133  
   134  The above command set image pull policy to `Always`, so docker image will be pulled each time.
   135  
   136  Alternatively, a YAML file that specifies the values for the parameters can be provided while installing the chart. For example,
   137  
   138  ```bash
   139  $ helm install --name volcano-release -f values.yaml volcano/volcano
   140  ```
   141  
   142  > **Tip**: You can use the default [values.yaml](chart/volcano/values.yaml)