全部產品
Search
文件中心

Container Service for Kubernetes:自訂調度器kube-scheduler參數

更新時間:Sep 04, 2024

通過修改kube-scheduler的自訂參數,您可以根據需要自訂調度器的行為,使得Pod的調度更符合您的期望,例如是否使用Binpack策略、是否開啟負載感知調度能力等。

前提條件

已建立1.20及以上版本的ACK叢集Pro版ACK Edge叢集Pro版ACK靈駿叢集ACK Serverless叢集Pro版。如需升級叢集,請參見手動升級叢集

使用限制

對於不同版本的ACK叢集Pro版以及ACK Edge叢集Pro版,支援自訂參數的調度器需滿足如下版本要求。

說明

當前所有已安裝Kube Scheduler的ACK Serverless叢集Pro版以及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. 登入Container Service管理主控台,在左側導覽列選擇叢集

  2. 叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇營運管理 > 組件管理

  3. 核心組件頁簽地區,定位kube-scheduler組件,單擊卡片右下方的配置,在對話方塊中按照頁面提示完成參數的配置。

    不同版本調度器支援的功能不同,其支援的自訂參數也有所區別。關於不同版本調度器支援的功能,請參見kube-scheduler。自訂參數的含義及其用法,如下表所示。

    配置項

    說明

    類型

    取值(範圍)

    預設值

    podMaxBackoffSeconds

    Pod調度失敗後回退秒數(Backoffseconds)的最大值。Pod兩次調度之間的時間間隔大於配置的回退秒數。

    int

    [1,100000]

    10

    Pod 調度時啟用優先集中放置策略

    開啟或關閉Pod調度時啟用優先集中放置策略,即Binpack策略。

    您可以參見下文Binpack自訂參數配置樣本。

    bool

    • false

    • true

    false

    binpackPluginWeight

    Binpack外掛程式打分時相比於其他打分外掛程式的權重。需同時選中Pod 調度時啟用優先集中放置策略

    int

    [1,100000]

    100

    binpackResourceWeight

    Binpack外掛程式打分時各種資源所佔的比重。需同時選中Pod 調度時啟用優先集中放置策略

    • resourceName: string

    • resourceWeight: int

    • resourceName使用schema進行校正,只允許使用字母、數字、英文半形句號(.)、正斜線(/)和短劃線(-)。

    • resourceWeight為整數,取值範圍為[1,10000]。

    • cpu:1

    • memory:1

    scorePluginWeights

    打分時各種外掛程式的權重。

    說明

    NodeResourceFit外掛程式權重與Binpack外掛程式權重衝突。當勾選了Pod 調度時啟用優先集中放置策略後,該項配置中請勿配置NodeResourceFit外掛程式的權重。

    • plugin: string

    • weight: int

    • plugin僅支援使用開放的外掛程式列表。

    • weight為整數,取值範圍為[1,10000]。

    • plugin: NodeAffinity

    • weight: 100

    connectionQPS

    API Server通訊的每秒最大請求次數。

    int

    [1,1000]

    50

    connectionBurst

    API Server通訊過程中,在用戶端超出速率限制時,允許累積的額外查詢個數。

    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

    loadAwareThreshold

    對應節點篩選策略,表示資源類型對應的閾值。需要勾選Pod 調度時啟用負載感知調度能力

    由資源名resourceName和權重threshold組成的列表。

    • resourceName:支援cpumemory兩種類型。

    • threshold:[0,100]。

    預設值為空白,即不開啟篩選功能。

    • resourceName:cpu

    • threshold:80

    loadAwareResourceWeight

    對應節點排序策略,表示資源類型對應的打分權重。需要勾選Pod 調度時啟用負載感知調度能力

    由資源名resourceName和權重resourceWeight組成的列表。

    • resourceName:使用schema進行校正,僅支援cpumemory

    • resourceWeight:整數,取值範圍為[1,100]。

    • cpu=1

    • memory=1

    loadAwareAggregatedUsageAggregationType

    負載統計值的彙總類型。各類型具體含義為:

    • avg:平均值。

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

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

    enum

    • avg

    • p50

    • p90

    • p95

    • p99

    avg

    featureGates

    調度器啟用的特性門控。各個版本支援的特性門控請參見Kubernetes官方文檔kube-scheduler

    string

    不涉及。

    與Kubernetes社區特性門控保持一致。

下文樣本介紹自訂參數的使用方法。

Binpack自訂參數

Binpack策略與Spread策略對比

維度

Binpack策略

Spread策略

調度策略

  • 優先將Pod調度到資源消耗較多的節點上。

  • 多個Pod會優先共用使用同一節點。

  • 優先將Pod調度到資源消耗最少的節點上。

  • 多個Pod會盡量分散使用不同節點。

特點

減少節點上的資源片段。

  • Kubernetes預設開啟的資源調度策略是Spread策略。

  • 使得叢集整體的資源在所有節點之間分配地相對均勻。

  • 會在單個節點上產生較多資源片段。

適用情境

提升節點利用率情境。

節點高可用情境。

使用Binpack自訂參數

您可以在Pod調度時啟用Binpack策略,即開啟Pod 調度時啟用優先集中放置策略,並設定Binpack打分外掛程式相比於其他打分外掛程式的權重。權重越大,Pod調度時越可能優先調度到同一節點上。您也可以設定Binpack外掛程式打分時參考的資源名及資源所佔的權重。權重越大,Binpack外掛程式打分時該種資源對Pod調度產生的影響越大。

您可以在組件管理頁面的核心組件頁簽,定位kube-scheduler組件,單擊配置,然後在對話方塊中配置Binpack相關的自訂參數。

配置項

樣本說明

Pod 調度時啟用優先集中放置策略

開啟開關。

binpackPluginWeight

配置Binpack的權重,一般情況下無需更改。當開啟Binpack開關後沒有產生效果時,可以適當調高Binpack的權重,例如200。詳細資料,請參見binpack權重

不同資源的Binpack策略

詳細的配置樣本,請參見Enabling bin packing using MostAllocated strategy

  • scoringStrategy:resources中的nameweight代表了不同資源在進行Binpack時的相對重要程度。

  • scoringStrategy:resources中的nameweight對應控制台的resourceNameresourceWeight

如果您開啟了Pod 調度時啟用優先集中放置策略,而沒有在binpackResourceWeight配置任何resourceName以及resourceWeight時,系統會以CPU和Memory進行Binpack的預設設定,此時Binpack策略與以下設定的效果相同。

cpu

相關文檔

推薦您啟用負載感知調度功能,根據節點的真實資源用量(而不是已申請的資源量)完成節點的調度,請參見使用負載感知調度