通過修改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及以上 |
操作步驟
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在核心組件頁簽區域,定位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策略與以下設置的效果相同。
相關文檔
推薦您啟用負載感知調度功能,根據節點的真實資源用量(而不是已申請的資源量)完成節點的調度,請參見使用負載感知調度。