全部產品
Search
文件中心

Container Compute Service:調度概述

更新時間:Dec 11, 2024

在Kubernetes叢集中,調度(Scheduling)過程具體是指調度器組件(kube-scheduler)根據叢集整體資源情況,將待啟動並執行Pod分配到合適的節點上。由於ACS叢集以虛擬節點的形式提供資源,因此您無需考慮複雜的資源分派策略,只需專註於應用的編排規則即可。本文介紹ACS叢集中常用調度能力的使用方法和注意事項。

Kubernetes原生調度策略

Kubernetes原生調度器提供了多種的調度外掛程式,在ACS的虛擬節點中,您只需關注親和性相關策略,來保證應用的效能和高可用情境,具體包括可用性區域拓扑打散、節點親和性、Pod間親和性。

功能

策略說明

參考文檔

可用性區域拓扑打散

通過在拓撲分布約束協議欄位TopologyKey中指定虛擬節點的標籤,實現對工作負載的可用性區域打散能力。

可用性區域拓扑打散

節點親和性

虛擬節點以label的形式標記了各類屬性,例如可用性區域。通過在nodeSelector等欄位中描述親和性需求,可以將應用運行在特定屬性的虛擬節點上。

節點親和性調度

Pod間親和性

用於表達Pod之間的親和性偏好,相較於節點親和性,Pod間親和性調度支援基於已經在虛擬節點上啟動並執行Pod的標籤來約束Pod可以調度到的範圍。通過在podAffinity等欄位中描述親和性需求,可以將Pod調度到指定的拓撲域。

Pod間親和性調度

自訂資源優先順序調度

功能

策略說明

典型情境

參考文檔

自訂資源優先順序調度

支援為Pod同時指定多種Compute Class或Compute QoS,調度器將在庫存不足時自動嘗試生產其他類型的Pod執行個體。

應用要求優先使用某一類型應用,例如計算任務希望優先使用性價比更優的best-effort型執行個體。

自訂資源優先順序調度

任務調度

K8s叢集中,任務型應用的申請資源需求更為多樣,例如AI訓練任務會要求保障一組Pod都可以同時申請到資源,在應用較多的叢集內還會有資源容量管理的需求,ACS針對任務型應用提供了以下調度能力。

功能

策略說明

典型情境

參考文檔

Gang scheduling

要求在調度時按照一組Pod整批分配資源,確保這組Pod都可以同時申請到資源,當無法滿足時,這組Pod應都集體處於Pending狀態。

高效能運算、AI訓練等任務,應用需要所有副本都啟動才能運行,如MPI任務。

使用Gang Scheduling

Capacity Scheduling

允許叢集為特定的命名空間設定資源容量限制。

多個使用者或應用共用叢集,需要按命名空間限制資源使用。

使用Capacity Scheduling