volcano.sh/volcano@v1.9.0/docs/design/multi-volcano-schedulers.md (about) 1 # Multi volcano schedulers 2 3 ## Introduction 4 5 Sometimes we may want to the cluster be divided into multi sections for different usage. 6 7  8 9 ### Advantage 10 - Each section can keep isolated. 11 - Each section include full scheduling capability. 12 - Support user monopolizing some nodes. 13 - System services can be scheduled in specific nodes. 14 15 ### Usage 16 17 #### Specify scheduler 18 You should name each scheduler, and add `selector` to filter nodes. 19 20 `selector`(label query) supports ':'.(e.g. --node-selector key1:value1,key2:value2) 21 22 ```diff 23 # Scheduler deployment 24 ... 25 spec: 26 containers: 27 - args: 28 - --logtostderr 29 - --scheduler-conf=/volcano.scheduler/volcano-scheduler.conf 30 + - --scheduler-name=gpu 31 + - --node-selector=zone:gpu 32 - -v=3 33 - 2>&1 34 ``` 35 36 #### Specify controller 37 38 Controller need to specify multi `scheduler-name`s 39 40 ```diff 41 # Controller deployment 42 ... 43 spec: 44 containers: 45 - args: 46 - --logtostderr 47 + - --scheduler-name=volcano 48 + - --scheduler-name=gpu 49 - -v=4 50 - 2>&1 51 ``` 52 53 #### Specify Job 54 55 ```diff 56 apiVersion: batch.volcano.sh/v1alpha1 57 kind: Job 58 metadata: 59 name: run-gpu 60 spec: 61 minAvailable: 3 62 + schedulerName: gpu # need to specify scheduler name 63 tasks: 64 - replicas: 3 65 name: worker 66 template: 67 metadata: 68 name: worker 69 spec: 70 containers: 71 - image: tensorflow/tensorflow:latest-gpu 72 name: tensorflow 73 resources: 74 requests: 75 cpu: 1 76 memory: 10Gi 77 nvidia.com/gpu: 2 78 ``` 79 80 #### Specify Deployments 81 82 User also can use vc-scheduler to deploy system services by changing `schedulerName` from Deployment. 83 84 ```yaml 85 apiVersion: apps/v1 86 kind: Deployment 87 metadata: 88 name: nginx 89 labels: 90 app: nginx 91 spec: 92 replicas: 3 93 selector: 94 matchLabels: 95 app: nginx 96 template: 97 metadata: 98 labels: 99 app: nginx 100 spec: 101 schedulerName: volcano 102 containers: 103 - name: nginx 104 image: nginx 105 ```