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 |
|
deschedulerPolicy |
否 |
yaml |
格式同Volcano重调度配置YAML |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
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,
}
}
}
}
}
}