Reviewed-by: Eotvos, Oliver <oliver.eotvos@t-systems.com> Co-authored-by: qiujiandong1 <qiujiandong1@huawei.com> Co-committed-by: qiujiandong1 <qiujiandong1@huawei.com>
40 KiB
Volcano Scheduler
Add-on Overview
Volcano is a batch scheduling platform based on Kubernetes. It provides a series of features required by machine learning, deep learning, bioinformatics, genomics, and other big data applications, as a powerful supplement to Kubernetes capabilities.
Add-on Parameters
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
basic |
No |
Table 2 object |
Basic configuration parameters, which do not need to be specified |
flavor |
Yes |
Table 3 object |
Flavor parameters |
custom |
Yes |
Table 4 object |
Custom parameters |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
swr_addr |
Yes |
String |
Add-on download address, which does not need to be specified |
swr_user |
Yes |
String |
User who can download the add-on. This parameter does not need to be specified. |
platform |
Yes |
String |
Add-on platform, which does not need to be specified |
escEndpoint |
Yes |
String |
ECS address, which does not need to be specified |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
description |
No |
String |
Add-on description |
name |
Yes |
String |
Add-on specification name. The value is fixed at Single-instance. |
replicas |
Yes |
String |
Number of pods. The default value is 1. |
resources |
Yes |
resources object |
Container resource (CPU and memory) quotas |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
multiAZEnabled |
No |
Bool |
Whether multi-AZ deployment is enabled true: The Volcano Scheduler pods are deployed based on anti-affinity. |
node_match_expressions |
No |
Array of Table 7 |
Expression for matching the Volcano Scheduler pods to nodes |
tolerations |
No |
Array of Table 6 |
The format is the same as that of Kubernetes tolerations. It is used to add taints to Volcano Scheduler pod pods. |
oversubscription_ratio |
No |
int |
Node resource overcommitment ratio in the Volcano scheduling environment |
descheduler_enable |
No |
Bool |
Whether to support rescheduling |
enable_workload_balancer |
No |
Bool |
Whether load balancers are supported |
default_scheduler_conf |
Yes |
yaml |
The format is the same as that of Volcano configuration YAML. |
deschedulerPolicy |
No |
yaml |
The format is the same as that of the volcano descheduling configuration YAML. |
Parameter |
Mandatory |
Type |
Description |
---|---|---|---|
limitsCpu |
Yes |
String |
CPU size limit (unit: m) Default value: 250m |
limitsMem |
Yes |
String |
Memory size limit (unit: Mi) Default value: 512Mi |
name |
Yes |
String |
Add-on name. The value is fixed at virtual-kubelet. |
requestsCpu |
Yes |
String |
Requested CPU size (unit: m) Default value: 250m |
requestsMem |
Yes |
String |
Requested memory size (unit: Mi) Default value: 512Mi |
Example Request
{ "kind": "Addon", "apiVersion": "v3", "metadata": { "annotations": { "addon.install/type": "install" } }, "spec": { "clusterID": "2292498e-d169-******-0255ac1001ba", "version": "1.12.14", "addonTemplateName": "volcano", "values": { "basic": { "swr_addr":"x.x.x.x:20202", "swr_user":"hwofficial", "platform":"linux-amd64", "ecsEndpoint":"x.x.x.x" }, "flavor": { "resources": [{ "limitsCpu": "500m", "limitsMem": "500Mi", "name": "volcano-scheduler", "requestsCpu": "2000m", "requestsMem": "2000Mi" }, { "limitsCpu": "500m", "limitsMem": "500Mi", "name": "volcano-controller", "requestsCpu": "2000m", "requestsMem": "2000Mi" }, { "limitsCpu": "200m", "limitsMem": "500Mi", "name": "volcano-admission", "requestsCpu": "500m", "requestsMem": "500Mi" }, { "limitsCpu": "100m", "limitsMem": "150Mi", "name": "volcano-agent", "requestsCpu": "200m", "requestsMem": "200Mi" }, { "limitsCpu": "50m", "limitsMem": "50Mi", "name": "volcano-exporter", "requestsCpu": "100m", "requestsMem": "100Mi" }, { "limitsCpu": "500m", "limitsMem": "256Mi", "name": "volcano-descheduler", "requestsCpu": "1000m", "requestsMem": "512Mi" }, { "limitsCpu": "300m", "limitsMem": "300Mi", "name": "volcano-recommender", "requestsCpu": "500m", "requestsMem": "500Mi" }, { "limitsCpu": "200m", "limitsMem": "200Mi", "name": "volcano-recommender-prometheus-adapter", "requestsCpu": "300m", "requestsMem": "300Mi" }] }, "custom": { "default_scheduler_conf": { "actions":"allocate,backfill,preempt", "tiers": [{ "plugins": [{ "name":"priority" }, { "name":"conformance" }, { "name":"gang", "enablePreemptable":"false", "enableJobStarving":"false", }] }, { "plugins": [{ "name":"predicates" }, { "name":"nodeorder" }, { "name":"drf", "enablePreemptable":"false", }] }, { "plugins": [{ "name":"cce-gpu-topology-predicate" }, { "name":"cce-gpu-topology-priority" }, { "name":"xgpu" }] }, { "plugins": [{ "name":"nodelocalvolume" }, { "name":"nodeemptydirvolume" }, { "name":"nodeCSIscheduling" }, { "name":"networkresource" }] }], "metrics":{ "type":"", "interval":30s, } } } } } }