ACK集群虛擬節(jié)點調(diào)度方案對比及介紹
針對虛擬節(jié)點,ACK托管集群(Pro版和基礎版)和ACK專有集群支持的調(diào)度方式不同,且有其特定的使用場景,例如直接指定Pod只調(diào)度到虛擬節(jié)點、跨可用區(qū)打散等。您可以依據(jù)調(diào)度場景以及集群類型,參考本文選擇合適的調(diào)度方式。
常見虛擬節(jié)點調(diào)度場景
只調(diào)度到虛擬節(jié)點。
優(yōu)先調(diào)度到ECS節(jié)點,在ECS節(jié)點資源不足時,再將Pod調(diào)度到虛擬節(jié)點。
在ACK集群基礎版中,調(diào)度場景1推薦您使用label alibabacloud.com/eci=true
完成,調(diào)度場景2推薦您升級至ACK集群Pro版,以獲取更豐富的產(chǎn)品層次能力、更高等級可靠性、SLA保障和更大集群容量。ACK支持ACK集群基礎版無縫遷移到ACK集群Pro版,請參見 熱遷移ACK集群基礎版至ACK集群Pro版。
注意事項
使用Label
alibabacloud.com/eci=true
的方式優(yōu)先級較高。如果與如下調(diào)度方式混用,會導致如下調(diào)度方式失效。Kubernetes原生調(diào)度語義(nodeSelector、親和性與反親和性、Pod拓撲分布約束)
ResourcePolicy
ElasticResource(Annotation:
alibabacloud.com/burst-resource
)
不推薦您使用ElasticWorkload和ElasticResource(Annotation:
alibabacloud.com/burst-resource
),這些組件或注解處于非活躍開發(fā)狀態(tài)。virtual-kubelet-autoscaler組件目前處于停止維護狀態(tài)。推薦您將ACK集群基礎版升級至ACK集群Pro版,并卸載該組件,避免占用節(jié)點資源。您可以基于Kubernetes原生調(diào)度語義實現(xiàn)ECI Pod的打散部署及親和部署。具體操作,請參見實現(xiàn)ECI Pod可用區(qū)打散以及親和調(diào)度。
方案對比及選型建議
關于表格中字段的說明:
優(yōu)先級調(diào)度:集群中存在不同的節(jié)點類型時,可以自行配置Pod調(diào)度到不同節(jié)點類型的優(yōu)先級。例如優(yōu)先調(diào)度到ECS節(jié)點,ECS節(jié)點不足時再調(diào)度到虛擬節(jié)點。
如果某種方式不支持優(yōu)先級調(diào)度,表明使用該方式時,無法對不同節(jié)點集合進行優(yōu)先級編排。例如通過
alibabacloud.com/eci=true
只能將指定Pod調(diào)度到虛擬節(jié)點,無法將Pod優(yōu)先調(diào)度到ECS,在ECS資源不足時再調(diào)度到虛擬節(jié)點。嚴格的調(diào)度策略:調(diào)度到不同類型節(jié)點池時的規(guī)則是否為強約束。
非嚴格的調(diào)度策略為軟約束。例如,節(jié)點親和性的preferredDuringSchedulingIgnoredDuringExecution會優(yōu)先調(diào)度到ECS節(jié)點,但可能會在節(jié)點綜合打分策略影響下,在ECS節(jié)點資源尚存時仍舊調(diào)度到虛擬節(jié)點。
嚴格的調(diào)度策略為硬約束。例如,ResourcePolicy能夠保證在ECS節(jié)點的資源滿足Pod需求時一定將Pod調(diào)度到ECS節(jié)點上。
ACK集群Pro版
調(diào)度方式 | 典型場景 | 優(yōu)先級調(diào)度 | 優(yōu)先縮容ECI Pod | 是否推薦使用 | 相關操作文檔 | |
labels: | 指定只調(diào)度到虛擬節(jié)點,但不支持指定是哪一個虛擬節(jié)點。 | 不支持 | 不涉及 | 推薦 | ||
Kubernetes原生調(diào)度語義 | nodeSelector | 添加Toleration后,指定只調(diào)度到虛擬節(jié)點上,同時可以指定調(diào)度到哪一個虛擬節(jié)點。 | 不支持 | 不涉及 | 推薦 | |
親和性與反親和性 | 通過Taint、Toleration和NodeAffinity,指定只調(diào)度到ECI、只調(diào)度到ECS或優(yōu)先調(diào)度到ECS(例如在ECS節(jié)點資源不足時調(diào)度到虛擬節(jié)點),是一種彈性調(diào)度策略。 同時支持(且僅支持)先縮容ECI,再縮容ECS。 | 支持(非嚴格的調(diào)度策略) | 支持 | 推薦 | ||
Pod拓撲分布約束 | 跨可用區(qū)打散,實現(xiàn)高可用和高性能調(diào)度需求。 | 不支持 | 支持 | 推薦 | ||
ResourcePolicy |
| 支持(嚴格的調(diào)度策略) | 支持 | 推薦 | ||
UnitedDeployment | 支持根據(jù)Deployment應用副本數(shù)制定調(diào)度到ECS或虛擬節(jié)點的策略,例如,副本數(shù)10以內(nèi)優(yōu)先使用包年包月的ECS資源,超出10個不超出20個的使用Spot資源,超出20個的再使用ECI資源。 | 支持 | 支持 | 推薦 | ||
ElasticWorkload (非活躍開發(fā)狀態(tài),建議使用UnitedDeployment) | 將Deployment副本進行分組調(diào)到ECS或虛擬節(jié)點。 | 支持 | 支持 | 不推薦 | ||
ElasticResource(Annotation: (非活躍開發(fā)狀態(tài)) | 僅支持兩種彈性調(diào)度策略:
| 支持 | 支持 | 不推薦 | ||
virtual-kubelet-autoscaler組件 (已停止維護) | 僅支持優(yōu)先調(diào)度到ECS節(jié)點,在ECS節(jié)點資源不足時再調(diào)度到虛擬節(jié)點。 | 支持 | 支持 | 不推薦 | 無 |
ACK集群基礎版和ACK專有集群
調(diào)度方式 | 典型場景 | 優(yōu)先級調(diào)度 | 優(yōu)先縮容ECI Pod | 是否推薦使用 | 相關操作文檔 | |
labels: | 指定只調(diào)度到虛擬節(jié)點,但不支持指定是哪一個虛擬節(jié)點。 | 不支持 | 不涉及 | 推薦 | ||
UnitedDeployment | 支持根據(jù)Deployment應用副本數(shù)制定調(diào)度到ECS或虛擬節(jié)點的策略,例如,副本數(shù)10以內(nèi)優(yōu)先使用包年包月的ECS資源,超出10個不超出20個的使用Spot資源,超出20個的再使用ECI資源。 | 支持 | 支持 | 推薦 | ||
Kubernetes原生調(diào)度語義 | nodeSelector | 添加Toleration后,指定只調(diào)度到虛擬節(jié)點上,同時可以指定調(diào)度到哪一個虛擬節(jié)點。 | 不支持 | 支持 | 不推薦 相比于ACK集群Pro版,ACK集群基礎版和ACK專有集群中的kube-scheduler在Pod調(diào)度時無法感知底層庫存情況,所以生產(chǎn)成功的確定性會降低。 | |
親和性與反親和性 | 通過Taint、Toleration和NodeAffinity,指定只調(diào)度到ECI、只調(diào)度到ECS或優(yōu)先調(diào)度到ECS(例如在ECS節(jié)點資源不足時調(diào)度到虛擬節(jié)點),是一種彈性調(diào)度策略。 | 支持(非嚴格的調(diào)度策略) | 支持 | |||
Pod拓撲分布約束 | 跨可用區(qū)打散,實現(xiàn)高可用和高性能調(diào)度需求。 | 不支持 | 支持 | |||
ElasticWorkload (非活躍開發(fā)狀態(tài),建議使用UnitedDeployment) | 將Deployment副本進行分組調(diào)到ECS或虛擬節(jié)點。 | 支持 | 支持 | 不推薦 | ||
ElasticResource(Annotation: (非活躍開發(fā)狀態(tài)) | 僅支持兩種彈性調(diào)度策略:
| 支持 | 支持 | 不推薦 | ||
virtual-kubelet-autoscaler組件 (已停止維護) | 僅支持優(yōu)先調(diào)度到ECS節(jié)點,在ECS節(jié)點資源不足時再調(diào)度到虛擬節(jié)點。 | 支持 | 支持 | 不推薦 | 無 |