通过修改Kube Scheduler的自定义参数,您可以根据需要自定义调度器的行为,使得Pod的调度更符合您的期望。本文介绍如何使用调度器自定义参数。
前提条件
已创建kubernetes版本为1.20及以上的ACK集群Pro版、ACK Edge集群Pro版以及ACK灵骏集群。具体操作,请参见创建Kubernetes托管版集群。
已安装Kube Scheduler的ACK Serverless集群Pro版(需要白名单开启)同样适用。具体操作,请参见创建ACK Serverless集群。
使用限制
对于不同版本的ACK集群Pro版以及ACK Edge集群Pro版,支持自定义参数的调度器需满足如下版本要求。
当前所有已安装Kube Scheduler的ACK Serverless集群Pro版以及ACK灵骏集群均可以使用自定义参数功能。
ACK版本 |
支持自定义参数的调度器版本 |
1.26 |
v1.26.3-aliyun-4.1-52b8a33f及以上 |
1.24 |
v1.24.6-ack-3.1及以上 |
1.22 |
v1.22.15-ack-2.0及以上 |
1.20 |
v1.20.11-9.0-bcaa6001-aliyun及以上 |
操作步骤
-
登录容器服务管理控制台,在左侧导航栏选择集群。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理。
-
在核心组件页签,找到Kube Scheduler,单击卡片右下方的配置。
-
在Kube Scheduler参数配置页面,配置自定义参数,然后单击确定。
不同版本调度器支持的功能不同,其支持的自定义参数也有所区别。关于不同版本调度器支持的功能,请参见kube-scheduler。自定义参数的含义及其用法,如下表所示。
配置项
说明
类型
取值(范围)
默认值
podMaxBackoffSeconds
Pod调度失败后回退秒数(Backoffseconds)的最大值。Pod两次调度之间的时间间隔大于配置的回退秒数。
int
[1,100000]
10
Pod 调度时启用优先集中放置策略(关闭时 Pod 将在多个节点上平均分布)
开启或关闭Pod调度时启用优先集中放置策略,即Binpack策略。
bool
-
false
-
true
true
binpackPluginWeight
Binpack插件打分时相比于其他打分插件的权重。
说明
仅选中Pod 调度时启用优先集中放置策略时此参数生效。
int
[1,100000]
100
binpackResourceWeight
Binpack插件打分时各种资源所占的比重。
说明
仅选中Pod 调度时启用优先集中放置策略后,此参数才可以生效。
-
resourceName: string
-
resourceWeight: int
-
resourceName使用schema进行校验,只允许使用字母、数字、英文半角句号(.)、正斜线(/)和短划线(-)。
-
resourceWeight为整数,取值范围为[1,10000]。
-
cpu:1
-
memory:1
connectionQPS
与APIServer通信的每秒最大请求次数。
int
[1,1000]
50
connectionBurst
与APIServer通信过程中,在客户端超出速率限制时,允许累积的额外查询个数。
int
[1,1000]
100
percentageOfNodesToScore
调度时评估的可运行节点的比例。
默认值为0,表示调度器会使用默认节点数百分比(基于集群规模确定的值,位于5%到50%之间)执行打分操作。
int
[0,100]
0
开启共享 GPU 插件的打分功能,开启后同一台机器上的多个任务将优先使用同一张卡
在使用共享GPU能力(共享GPU调度需要开通AI套件使用)时,调度GPU Pod时优先选择显存申请量及算力申请量更高的GPU
bool
-
false
-
true
true
Pod 调度时启用负载感知调度能力
开启负载感知调度能力,需要安装ack-koordinator组件。
bool
-
false
-
true
false
loadAwareResourceWeight
负载感知调度插件参考的CPU与Memory的资源权重。不配置时资源权重为0。
-
resourceName: string
-
resourceWeight: int
-
resourceName使用schema进行校验,只允许使用”cpu”或者”memory”。
-
resourceWeight为整数,取值范围为[1,10000]。
loadAwareAggregatedUsageAggregationType
负载感知调度插件根据百分位数统计数据过滤时参考的百分数类型。
enum
-
p50
-
p90
-
p95
-
p99
-
avg
avg
-
下文以Binpack参数为例解释自定义参数的使用方法。
Binpack自定义参数
Binpack策略与Spread策略对比
维度 |
Binpack策略 |
Spread策略 |
调度策略 |
|
|
特点 |
减少节点上的资源碎片。 |
|
适用场景 |
提升节点利用率场景。 |
节点高可用场景。 |
使用Binpack自定义参数
您可以在Pod调度时启用Binpack策略,即开启Pod 调度时启用优先集中放置策略,并设置Binpack打分插件相比于其他打分插件的权重,权重越大,Pod调度时越可能优先调度到同一节点上。您也可以设置Binpack插件打分时参考的资源名及资源所占的权重,权重越大,Binpack插件打分时该种资源对Pod调度产生的影响越大。
-
登录容器服务管理控制台,在左侧导航栏选择集群。
-
在集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理。
-
在其他页签中找到Kube Scheduler,并单击Kube Scheduler右下方的配置。
-
在Kube Scheduler参数配置页面,配置自定义参数。
-
选中Pod 调度时启用优先集中放置策略,开启Binpack开关。
-
配置Binpack的权重binpackPluginWeight。详细信息,请参见binpack权重。
一般情况下无需更改。当打开Binpack开关后没有产生效果时,可以适当调高Binpack的权重,例如设置为200。
-
配置对不同资源的Binpack策略,然后单击确定。
-
详细信息,请参见Enabling bin packing using MostAllocated strategy。其中
scoringStrategy:resources
中的name
及weight
代表了不同资源在进行Binpack时的相对重要程度。您可以对scoringStrategy:resources
中的name
及weight
进行配置。 -
scoringStrategy:resources
中的name
及weight
对应控制台的resourceName及resourceWeight,可以通过添加或删除按钮处理相关资源。
说明
当只选中Pod 调度时启用优先集中放置策略,而不配置任何resourceName以及resourceWeight时,会以CPU和Memory进行Binpack的默认设置,此时Binpack策略与以下设置的效果相同。
-
-
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家
阿里云企业补贴进行中: 马上申请
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心。
购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠
转转请注明出处:https://www.yunxiaoer.com/158757.html