更新时间:2024-11-21 GMT+08:00
分享

Volcano调度器

插件介绍

Volcano 是一个基于 Kubernetes 的批处理平台,提供了机器学习、深度学习、生物信息学、基因组学及其他大数据应用所需要的而 Kubernetes 当下缺失的一系列特性。

字段说明

表1 参数描述

参数

是否必选

参数类型

描述

basic

表 basic object

插件基础配置参数,无需指定。

flavor

表3 object

插件规格参数

custom

表4 object

插件自定义参数

表2 basic

参数

是否必选

参数类型

描述

swr_addr

String

插件下载地址,无需指定

swr_user

String

插件下载用户,无需指定

platform

String

插件平台,无需指定

escEndpoint

String

ecs地址,无需指定

表3 flavor

参数

是否必选

参数类型

描述

description

String

插件相关的描述信息

name

String

插件规格名称,固定为:Single-instance

replicas

String

实例数,默认为:1

resources

resources object

容器资源(CPU、内存)配额。

表4 custom

参数

是否必选

参数类型

描述

multiAZEnabled

Bool

是否多AZ部署

true:Volcano负载Pod按照反亲和性部署

node_match_expressions

nodeMatchExpresssion节点亲和配置

Volcano负载Pod匹配node的表达式

tolerations

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重调度配置格式

表5 resources字段数据结构说明

参数

是否必选

参数类型

描述

limitsCpu

String

CPU大小限制,单位:m

默认为:250m

limitsMem

String

内存大小限制,单位:Mi

默认为:512Mi

name

String

插件名称,固定为:virtual-kubelet

requestsCpu

String

申请的CPU大小,单位:m

默认为:250m

requestsMem

String

申请的内存大小,单位:Mi

默认为:512Mi

表6 tolerations污点

参数

是否必选

参数类型

描述

key

String

污点键

effect

String

污点策略

operator

String

操作符

tolerationSeconds

Int

容忍时间窗

表7 nodeMatchExpresssion节点亲和配置

参数

是否必选

参数类型

描述

key

String

污点键

values

List<String>

节点亲和的名称

operator

String

操作符

请求示例

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

                                }
			}
		}
	}
}

相关文档