全部產品
Search
文件中心

Container Service for Kubernetes:ACK叢集虛擬節點調度方案對比及介紹

更新時間:Jul 30, 2024

針對虛擬節點,ACK託管叢集(Pro版和基礎版)和ACK專有叢集支援的調度方式不同,且有其特定的使用情境,例如直接指定Pod只調度到虛擬節點、跨可用性區域打散等。您可以依據調度情境以及叢集類型,參考本文選擇合適的調度方式。

常見虛擬節點調度情境

  1. 只調度到虛擬節點。

  2. 優先調度到ECS節點,在ECS節點資源不足時,再將Pod調度到虛擬節點。

ACK叢集基礎版中,調度情境1推薦您使用label alibabacloud.com/eci=true完成,調度情境2推薦您升級至ACK叢集Pro版,以擷取更豐富的產品層次能力、更高等級可靠性、SLA保障和更大叢集容量。ACK支援ACK叢集基礎版無縫遷移到ACK叢集Pro版,請參見 熱遷移ACK叢集基礎版至ACK叢集Pro版

注意事項

  • 不推薦您使用ElasticWorkload以及ElasticResource的(annotations:alibabacloud.com/burst-resource),這些組件或註解處於非活躍開發狀態。

  • virtual-kubelet-autoscaler組件目前處於停止維護狀態。推薦您將ACK叢集基礎版升級至ACK叢集Pro版,並卸載該組件,避免佔用節點資源。您可以基於Kubernetes原生調度語義實現ECI Pod的打散部署及親和部署。具體操作,請參見實現ECI Pod可用性區域打散以及親和調度

方案對比及選型建議

關於表格中欄位的說明:

  • 優先順序調度:叢集中存在不同的節點類型時,可以自行配置Pod調度到不同節點類型的優先順序。例如優先調度到ECS節點,ECS節點不足時再調度到虛擬節點。

    如果某種方式不支援優先順序調度,表明使用該方式時,無法對不同節點集合進行優先順序編排。例如通過alibabacloud.com/eci=true只能將指定Pod調度到虛擬節點,無法將Pod優先調度到ECS,在ECS資源不足時再調度到虛擬節點。

  • 嚴格的調度策略:調度到不同類型節點池時的規則是否為強約束。

    • 非嚴格的調度策略為軟約束。例如,節點親和性的preferredDuringSchedulingIgnoredDuringExecution會優先調度到ECS節點,但可能會在節點綜合打分策略影響下,在ECS節點資源尚存時仍舊調度到虛擬節點。

    • 嚴格的調度策略為硬約束。例如,ResourcePolicy能夠保證在ECS節點的資源滿足Pod需求時一定將Pod調度到ECS節點上。

ACK叢集Pro版

調度方式

典型情境

優先順序調度

優先縮容ECI Pod

是否推薦使用

相關操作文檔

labels: alibabacloud.com/eci=true

指定只調度到虛擬節點,但不支援指定是哪一個虛擬節點。

不支援

不涉及

推薦

通過虛擬節點將Pod調度到ECI上運行

Kubernetes原生調度語義

nodeSelector

添加Toleration後,指定只調度到虛擬節點上,同時可以指定調度到哪一個虛擬節點。

不支援

不涉及

推薦

nodeSelector

親和性與反親和性

通過Taint、Toleration和NodeAffinity,指定只調度到ECI、只調度到ECS或優先調度到ECS(例如在ECS節點資源不足時調度到虛擬節點),是一種彈性調度策略。

同時支援(且僅支援)先縮容ECI,再縮容ECS。

支援(非嚴格的調度策略)

支援

推薦

指定ECS和ECI的資源分派

Pod拓撲分布約束

跨可用性區域打散,實現高可用和高效能調度需求。

不支援

支援

推薦

實現ECI Pod可用性區域打散以及親和調度

ResourcePolicy

  • 支援基於節點池的優先順序調度,例如優先調度到節點池A,資源不足時調度節點池B。

  • ECS和ECI混部情境下,還支援配置資源付費類型,例如優先調度到訂用帳戶的ECS,然後到隨用隨付的ECS,最後到ECI。

    同時,支援按原調度順序逆序縮容,例如先縮容ECI,再縮容隨用隨付的ECS,最後縮容訂用帳戶的ECS。

支援(嚴格的調度策略)

支援

推薦

自訂彈性資源優先順序調度

UnitedDeployment

支援根據Deployment應用副本數制定調度到ECS或虛擬節點的策略,例如,副本數10以內優先使用訂用帳戶的ECS資源,超出10個不超出20個的使用Spot資源,超出20個的再使用ECI資源。

支援

支援

推薦

ElasticWorkload

(非活躍開發狀態,建議使用UnitedDeployment)

將Deployment副本進行分組調到ECS或虛擬節點。

支援

支援

不推薦

安裝Elastic Workload(停止維護)

ElasticResource(Annotation:alibabacloud.com/burst-resource

(非活躍開發狀態)

僅支援兩種彈性調度策略:

  • ECS節點資源不足時調度到虛擬節點(彈性調度策略為eci)。

  • 只調度到虛擬節點(彈性調度策略為eci_only)。

支援

支援

不推薦

使用ECI彈性調度

virtual-kubelet-autoscaler組件

(已停止維護)

僅支援優先調度到ECS節點,在ECS節點資源不足時再調度到虛擬節點。

支援

支援

不推薦

ACK叢集基礎版ACK專有叢集

調度方式

典型情境

優先順序調度

優先縮容ECI Pod

是否推薦使用

相關操作文檔

labels: alibabacloud.com/eci=true

指定只調度到虛擬節點,但不支援指定是哪一個虛擬節點。

不支援

不涉及

推薦

通過虛擬節點將Pod調度到ECI上運行

UnitedDeployment

支援根據Deployment應用副本數制定調度到ECS或虛擬節點的策略,例如,副本數10以內優先使用訂用帳戶的ECS資源,超出10個不超出20個的使用Spot資源,超出20個的再使用ECI資源。

支援

支援

推薦

UnitedDeployment

Kubernetes原生調度語義

nodeSelector

添加Toleration後,指定只調度到虛擬節點上,同時可以指定調度到哪一個虛擬節點。

不支援

支援

不推薦

相比於ACK叢集Pro版ACK叢集基礎版ACK專有叢集中的kube-scheduler在Pod調度時無法感知底層庫存情況,所以生產成功的確定性會降低。

nodeSelector

親和性與反親和性

通過Taint、Toleration和NodeAffinity,指定只調度到ECI、只調度到ECS或優先調度到ECS(例如在ECS節點資源不足時調度到虛擬節點),是一種彈性調度策略。

支援(非嚴格的調度策略)

支援

Affinity and anti-affinity

Pod拓撲分布約束

跨可用性區域打散,實現高可用和高效能調度需求。

不支援

支援

Pod topology spread constraints

ElasticWorkload

(非活躍開發狀態,建議使用UnitedDeployment)

將Deployment副本進行分組調到ECS或虛擬節點。

支援

支援

不推薦

安裝Elastic Workload(停止維護)

ElasticResource(Annotation:alibabacloud.com/burst-resource

(非活躍開發狀態)

僅支援兩種彈性調度策略:

  • ECS節點資源不足時調度到虛擬節點(彈性調度策略為eci)。

  • 只調度到虛擬節點(彈性調度策略為eci_only)。

支援

支援

不推薦

使用ECI彈性調度

virtual-kubelet-autoscaler組件

(已停止維護)

僅支援優先調度到ECS節點,在ECS節點資源不足時再調度到虛擬節點。

支援

支援

不推薦