日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

節點伸縮概述

當集群的容量規劃無法滿足應用Pod調度時,您可以使用ACK提供的節點伸縮功能,自動擴縮節點資源以進行調度容量的補充。ACK目前提供節點自動伸縮節點即時彈性兩種彈性方案,后者相較于前者有著更快的彈性速度、更高的交付效率和更低的使用門檻。

閱讀前提示

為了讓您更好地了解ACK提供的節點伸縮方案,并結合您的業務訴求進行方案選型,建議您在啟用節點伸縮能力前閱讀本篇概述。

閱讀本文前,推薦您參見Kubernetes官方文檔了解手動伸縮、自動伸縮、水平伸縮、垂直伸縮等伸縮概念。

工作原理

在Kubernetes中,節點伸縮的工作原理與傳統意義上基于使用率閾值的模型有所差別。這也是從傳統IDC或其他編排系統遷移到Kubernetes集群后往往需要解決的問題。

傳統的彈性伸縮模型基于使用率實現。例如,一個集群中有3個節點,當集群中的節點CPU、內存使用率超過特定的閾值時,系統將擴容新的節點。但這種模式存在以下問題。

閾值是如何選擇與判斷的?

在一個集群中,部分熱點節點的利用率可能較高,而其他節點的利用率可能較低。

  • 如果根據整個集群的平均資源利用率來決定是否彈性伸縮,使得熱點節點的差異被平均,那么會造成對熱點節點的擴縮不夠及時。

  • 如果依據最高的節點利用率來決定是否彈性伸縮,那么會造成彈出資源的浪費,影響集群的整體服務。

彈出實例后如何緩解壓力?

在Kubernetes集群中,應用以Pod為最小單元部署在集群的不同節點上。當一個Pod資源利用率較高時,即使該Pod所在的節點或者集群觸發了彈性擴容,但該應用的Pod數量以及Pod對應的Limit并沒有發生變化,節點負載的壓力也無法轉移到新擴容的節點上。

如何判斷以及執行實例的縮容?

如果基于資源利用率的方式判斷節點是否縮容,那么很有可能出現Request(資源請求)較大、但Usage(實際資源使用)很小的Pod被驅逐。當集群中這種類型的Pod較多時,會占用集群大量的調度資源,導致部分Pod無法調度。

基于以上問題,ACK通過節點伸縮(資源層)和工作負載伸縮(調度層)兩層彈性模型來解決。節點伸縮基于資源的使用率來觸發應用副本的變化,也就是調度單元的變化。以下介紹技術細節。

如何判斷節點的彈出?

節點伸縮會監聽Pod是否處于調度失敗的狀態,以判斷是否需要觸發擴容。當Pod由于調度資源不足而調度失敗時,節點伸縮會開始模擬調度,計算在開啟彈性的節點池中哪個節點池可為這些Pod提供所需的節點資源,并在滿足需求時彈出相應的節點。

說明

模擬調度時將一個開啟彈性的節點池作為一個的抽象節點,開啟彈性的節點池中配置的機型規格對應會成為抽象節點的CPU、內存或GPU的容量,且其配置的Label、Taint也會成為抽象節點的Label與Taint。模擬調度器會在調度模擬時,將該抽象節點納入調度參考范圍。符合調度條件時,調度模擬器會計算所需的節點數目,驅動節點池彈出節點。

如何判斷節點的縮容?

節點伸縮僅縮容開啟了彈性的節點池中的節點,無法管理靜態節點(不在開啟了彈性的節點池中的其他節點)。每個節點會單獨判斷是否進行縮容。當任意一個節點的調度利用率低于所設置的調度閾值時,就會觸發縮容判斷。此時,節點伸縮會嘗試模擬驅逐節點上的負載,判斷當前節點是否可以排水。部分特殊的Pod(例如kube-system命名空間的非DaemonSet Pod、PDB控制的Pod等)則會跳過該節點而選擇其他的候選節點。當節點發生驅逐時,會先進行排水,將節點上的Pod驅逐到其他的節點,然后再下線該節點。

多個開啟彈性的節點池之間如何選擇?

不同開啟彈性的節點池之間,實際上相當于不同的抽象節點之間的選擇。和調度策略一樣,開啟彈性的節點池之間也存在打分機制。彈性組件首先篩選符合調度策略的節點,然后進一步根據affinity等親和性策略進行選擇。

如果基于上述策略無法選擇合適的節點,默認情況下節點自動伸縮會通過least-waste的策略進行選擇。least-waste策略的核心是模擬彈出節點后,找到剩余資源最少的節點。

說明

當有一個開啟彈性的GPU節點池和開啟彈性的CPU節點池同時可以彈出生效時,默認CPU會優先于GPU彈出。

而默認情況下,節點即時彈性會通過比較庫存和成本進行選擇,以在多個可行的擴容方案中選擇庫存保障較高且成本較低的方案。

如何提高彈性伸縮的成功率?

彈性伸縮的成功率主要取決于以下兩個因素:

  • 調度策略是否滿足

    配置開啟彈性的節點池后,您需要先確認該節點池可以承載的Pod的調度策略范圍。如果無法直接判斷,您可以通過nodeSelector直接選擇節點池的Label,來進行預彈模擬。

  • 資源配置是否充分

    當模擬調度通過后,系統會選擇開啟彈性的節點池,以彈出實例。但開啟彈性的節點池中配置的ECS規格庫存會直接影響是否可以成功彈出實例。因此,推薦您配置多個可用區、多個不同機型組合,以提高彈出成功率。

如何提高彈性伸縮的速度?

  • 方法一:使用極速模式加速彈出速度。當開啟彈性的節點池預熱后(已完成一次擴容和一次縮容),節點池即可進入極速伸縮模式。更多信息,請參見啟用節點自動伸縮

  • 方法二:使用自定義鏡像的方式,以Alibaba Cloud Linux 3作為基礎鏡像,大大提升IaaS層的資源交付速度(50%)。更多信息,請參見彈性優化之自定義鏡像

彈性方案:節點自動伸縮節點即時彈性

節點伸縮指資源層彈性,即當集群的容量規劃無法滿足應用Pod調度時,自動擴縮節點資源,以進行調度容量的補充。ACK在節點伸縮層面提供兩種彈性方案。

方案介紹

重要
  • 本文中提供的彈性測量數據為理論值,均基于彈性優化的自定義鏡像實現,實際數據以您的實際業務環境為準。關于自定義鏡像的更多信息,請參見彈性優化之自定義鏡像

  • 節點即時彈性需要白名單權限開啟。如需使用,請提交工單并描述您的業務場景進行申請。

方案

實現組件

說明

方案一:節點自動伸縮

cluster-autoscaler組件

以輪詢的方式,周期性地維護和檢查集群狀態,以發現滿足擴縮容條件的情況,從而自動擴縮容集群節點。

方案二:節點即時彈性

節點即時彈性組件

一個基于事件驅動的節點伸縮控制器。在大規模集群(例如彈性節點池中節點數大于100,或彈性節點池數大于20)和連續多次彈性擴容等場景下,能夠保證更好的彈性資源交付。伸縮速度(即從Pod首次調度失敗到Pod調度成功的耗時)穩定在45s、成功率可達99%、資源碎片度降低約30%。同時,在擴縮容自定義策略上有更好的擴展性。

方案對比

如果您的集群節點池已開啟自動彈性伸縮且節點池的伸縮模式非極速模式節點即時彈性可兼容原彈性節點池的語義與行為,并支持所有類型的應用無感開啟與使用。所以,本小節重點闡述節點即時彈性相較于節點自動伸縮的優化特性。

優化特性

節點自動伸縮

節點即時彈性

伸縮速度與效率

單次伸縮時,標準模式的伸縮速度約為60s,極速模式為50s。

通過事件驅動的機制來觸發擴縮行為,結合阿里云的ContainerOS能力進行彈性加速,伸縮速度大約為45±10s。

當達到1分鐘的伸縮量級時,伸縮速度會遇到瓶頸,并且在不同規模(多節點池)、不同場景(連續伸縮)下,彈性速度也會有比較明顯的抖動。例如,當節點池數量超過100時,伸縮速度將衰減為100~150s。

不會隨著節點池的規模與Pod的規模的增大而產生明顯的衰減,更適用于對彈性交付速度高的場景。

使用輪詢式模型,且受制于對集群狀態維護的依賴,彈性靈敏度最低為5s。

基于事件驅動,使用響應式模型,彈性靈敏度為1~3s。

資源交付確定性

云上資源的庫存變化較為頻繁。由于實例規格組合問題、庫存不足等原因,節點自動伸縮的彈性成功率在97%左右。

支持庫存自動選擇策略,可根據您配置的篩選條件與順序,從阿里云上千個實例規格組合中過濾無庫存的實例規格,并選擇最為合適的規格進行擴容,或在庫存不足時補償符合條件的規格。這大大降低了運維人員選擇規格的壓力,同時提升了交付的成功率,可達99%。

支持按照節點池配置的規格擴容相同類型的規格。在類型不同時,會選擇最小的規格進行擴容。

支持擴容不同類型的規格。

資源交付失敗時,會進行周期性重試,手段較為滯后。

資源交付失敗時,支持庫存預警能力,提前通知規格組合的潛在風險。

使用及運維門檻

相較于節點自動伸縮節點即時彈性的使用門檻更低。主要體現在以下方面。

  • 節點池配置維護:節點即時彈性能夠根據實例屬性在多規格和多可用區中自動選擇實例,容納等待調度的Pod。但在節點自動伸縮模式下,您需要自行維護節點池各項配置,以保證Pod的正常調度。因此,當Pods配置發生變更時,往往意味著對應節點池配置也需要更新。

  • 節點運維:對于開發者來說,在擴縮容過程中,相關異常都可以通過Pod事件同步,他們只需管理Pod的生命周期。

  • 功能拓展:支持擴展機制,例如結合Descheduler準備彈性資源。節點即時彈性支持無侵入式地將資源供給策略、節點生命周期管理與您的自定義行為進行聯動,提供更多二次開發的可能性。

調度策略

除支持節點自動伸縮所有的調度特性之外,節點即時彈性還支持以下特性:

  • Topology:常用于滿足跨可用區維度的高可用需求。

  • Pod Disruption Budgets:可限制在同一時間因自愿干擾導致的多副本應用中發生宕機的Pod數量。

節點即時彈性支持根據Pod選擇最優裝箱策略(Bin Packing)預綁定(PreBind)策略(自定義特性),可將調度碎片率優化30%。

節點即時彈性的使用限制

在評估節點即時彈性方案時,您需要同時了解節點即時彈性的使用限制。

  • 不支持極速模式

  • 一個節點池單批擴容節點的個數不可超過180個

  • 不支持以下自定義參數

    • 禁止縮容

    • 自定義GPU縮容閾值

    • 自定義擴容策略

方案選型建議

參見前文的方案對比節點即時彈性的使用限制,如果您的業務對彈性速度、資源交付確定性和使用及運維成本要求相對較低,且無法容忍節點即時彈性的使用限制時,節點自動伸縮可能能夠滿足您的業務需求。但如果您有以下業務訴求,我們更推薦您使用節點即時彈性。

  • 集群規模較大,例如彈性節點池中節點數大于100,或彈性節點池數大于20集群規模變大時,節點自動伸縮的擴容效率會明顯衰減,而節點即時彈性的性能波動較小。

  • 對資源交付速度,即彈性速度,有更高要求。單次伸縮場景下,標準模式下的節點自動伸縮的彈性速度為60s左右,而節點即時彈性為45s左右。

  • 業務負載批次不可控,對同一個彈性節點池通常有連續擴容的需求。連續伸縮模式下,節點自動伸縮的性能會衰減且抖動較為明顯,而節點即時彈性仍然能實現45s左右的伸縮速度。

注意事項

配額與限制

  • 在專有網絡下創建的單個路由表可創建的自定義路由數限額是200條。如需更大的配額,請前往配額中心提交申請。關于其他資源的配額限制及升配詳情,請參見依賴底層云產品配額限制

  • 請合理配置開啟自動伸縮的節點池的最大實例數,保證此范圍內的節點所依賴的資源和配額充足,例如合理規劃VPC網段、交換機等網絡資源,以避免節點擴容失敗。配置開啟自動伸縮的節點池的最大實例數,請參見配置實例數量。關于ACK的網絡規劃,請參見Kubernetes集群網絡規劃

  • 節點伸縮功能不支持包年包月付費類型的節點。如需新建開啟自動伸縮的節點池,請勿選擇付費類型為包年包月。如需為已有節點池開啟自動伸縮,請確保節點池內沒有包年包月付費類型的節點。

依賴資源的維護

選擇綁定EIP時,請勿通過ECS控制臺直接刪除節點伸縮擴容出的ECS節點,否則會導致EIP無法自動釋放。

后續閱讀