通過修改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及以上 |
操作步驟
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在核心組件頁簽地區,定位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:支援cpu和memory兩種類型。
threshold:[0,100]。
預設值為空白,即不開啟篩選功能。
resourceName:cpu
threshold:80
loadAwareResourceWeight
對應節點排序策略,表示資源類型對應的打分權重。需要勾選Pod 調度時啟用負載感知調度能力 。
由資源名resourceName和權重resourceWeight組成的列表。
resourceName:使用schema進行校正,僅支援
cpu
或memory
。resourceWeight:整數,取值範圍為[1,100]。
cpu=1
memory=1
loadAwareAggregatedUsageAggregationType
負載統計值的彙總類型。各類型具體含義為:
avg:平均值。
p50:50%分位值,即中位元。
p90、p95、p99:分別表示90%、95%、99%分位值。
enum
avg
p50
p90
p95
p99
avg
featureGates
調度器啟用的特性門控。各個版本支援的特性門控請參見Kubernetes官方文檔kube-scheduler。
string
不涉及。
與Kubernetes社區特性門控保持一致。
下文樣本介紹自訂參數的使用方法。
Binpack自訂參數
Binpack策略與Spread策略對比
維度 | Binpack策略 | 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。
|
如果您開啟了Pod 調度時啟用優先集中放置策略,而沒有在binpackResourceWeight配置任何resourceName以及resourceWeight時,系統會以CPU和Memory進行Binpack的預設設定,此時Binpack策略與以下設定的效果相同。
相關文檔
推薦您啟用負載感知調度功能,根據節點的真實資源用量(而不是已申請的資源量)完成節點的調度,請參見使用負載感知調度。