Volcano调度器
插件介绍
Volcano 是一个基于 Kubernetes 的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要的而 Kubernetes 当下缺失的一系列特性。
字段说明
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
basic |
否 |
表 basic object |
插件基础配置参数,无需指定。 |
flavor |
是 |
表3 object |
插件规格参数 |
custom |
是 |
表4 object |
插件自定义参数 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
swr_addr |
是 |
String |
插件下载地址,无需指定 |
swr_user |
是 |
String |
插件下载用户,无需指定 |
platform |
是 |
String |
插件平台,无需指定 |
escEndpoint |
是 |
String |
ecs地址,无需指定 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
description |
否 |
String |
插件相关的描述信息 |
name |
是 |
String |
插件规格名称,固定为:Single-instance |
replicas |
是 |
String |
实例数,默认为:1 |
resources |
是 |
resources object |
容器资源(CPU、内存)配额。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
multiAZEnabled |
否 |
Bool |
是否多AZ部署 true:Volcano负载Pod按照反亲和性部署 |
node_match_expressions |
否 |
Volcano负载Pod匹配node的表达式 |
|
tolerations |
否 |
格式同k8s toleration 的格式,用来为Volcano负载Pod添加污点 |
|
oversubscription_ratio |
否 |
int |
Volcano调度环境中Node资源的超分比例 |
descheduler_enable |
否 |
Bool |
是否支持重调度 |
enable_workload_balancer |
否 |
Bool |
是否支持负载均衡器 |
default_scheduler_conf |
是 |
yaml |
格式同Volcano配置YAML,参见Volcano配置格式 |
deschedulerPolicy |
否 |
yaml |
格式同Volcano重调度配置YAML,参见Volcano重调度配置格式 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
limitsCpu |
是 |
String |
CPU大小限制,单位:m 默认为:250m |
limitsMem |
是 |
String |
内存大小限制,单位:Mi 默认为:512Mi |
name |
是 |
String |
插件名称,固定为:virtual-kubelet |
requestsCpu |
是 |
String |
申请的CPU大小,单位:m 默认为:250m |
requestsMem |
是 |
String |
申请的内存大小,单位:Mi 默认为:512Mi |
请求示例
{ "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, } } } } } }