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,
}
}
}
}
}
}