文档

使用调度器自定义参数

更新时间:

通过修改Kube Scheduler的自定义参数,您可以根据需要自定义调度器的行为,使得Pod的调度更符合您的期望。本文介绍如何使用调度器自定义参数。

前提条件

已创建v1.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.28

均可支持

1.26

v1.26.3-aliyun-4.1及以上

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及以上

操作步骤

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理

  3. 核心组件页签,找到Kube Scheduler,单击卡片右下方的配置

  4. 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]。

    cpu=1

    memory=1

    loadAwareAggregatedUsageAggregationType

    负载统计值的聚合类型。各类型具体含义为:

    • avg:平均值。

    • p50:50%分位值,即中位数。

    • p90p95p99:分别表示90%、95%、99%分位值。

    enum

    • p50

    • p90

    • p95

    • p99

    • avg

    avg

下文以Binpack参数为例解释自定义参数的使用方法。

Binpack自定义参数

Binpack策略与Spread策略对比

维度

Binpack策略

Spread策略

调度策略

  • 优先将Pod调度到资源消耗较多的节点上。

  • 多个Pod会优先共享使用同一节点。

  • 优先将Pod调度到资源消耗最少的节点上。

  • 多个Pod会尽量分散使用不同节点。

特点

减少节点上的资源碎片。

  • Kubernetes默认开启的资源调度策略是Spread策略。

  • 使得集群整体的资源在所有节点之间分配地相对均匀。

  • 会在单个节点上产生较多资源碎片。

适用场景

提升节点利用率场景。

节点高可用场景。

使用Binpack自定义参数

您可以在Pod调度时启用Binpack策略,即开启Pod 调度时启用优先集中放置策略,并设置Binpack打分插件相比于其他打分插件的权重,权重越大,Pod调度时越可能优先调度到同一节点上。您也可以设置Binpack插件打分时参考的资源名及资源所占的权重,权重越大,Binpack插件打分时该种资源对Pod调度产生的影响越大。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择运维管理 > 组件管理

  3. 核心组件页签中找到Kube Scheduler,并单击Kube Scheduler右下方的配置

  4. Kube Scheduler参数配置页面,配置自定义参数。

    1. 选中Pod 调度时启用优先集中放置策略,开启Binpack开关。

    2. 配置Binpack的权重binpackPluginWeight。详细信息,请参见binpack权重

      一般情况下无需更改。当打开Binpack开关后没有产生效果时,可以适当调高Binpack的权重,例如设置为200

    3. 配置对不同资源的Binpack策略,然后单击确定。

      • 详细信息,请参见Enabling bin packing using MostAllocated strategy。其中scoringStrategy:resources中的nameweight代表了不同资源在进行Binpack时的相对重要程度。您可以对scoringStrategy:resources中的nameweight进行配置。

      • scoringStrategy:resources中的nameweight对应控制台的resourceNameresourceWeight,可以通过添加删除按钮处理相关资源。

      说明

      当只选中Pod 调度时启用优先集中放置策略,而不配置任何resourceName以及resourceWeight时,会以CPU和Memory进行Binpack的默认设置,此时Binpack策略与以下设置的效果相同。

      cpu

  • 本页导读 (1)
文档反馈