節點池場景擴充
前言
前面我們介紹了如何通過ACK 節點池管理雲上節點資源,以及通過節點池解決的問題。 本文我們介紹通過節點池能夠實作的各種場景。
目錄
節點池系列将分為幾部分介紹ACK Kubernetes 節點池功能和特性
- 通過ACK 節點池高效管理Kubernetes節點——節點池介紹
- 通過ACK 節點池高效管理Kubernetes節點——線上,邊緣,彈性多種場景
- 通過ACK 節點池高效管理Kubernetes節點——降低成本:自動伸縮與搶占執行個體
- 通過ACK 節點池高效管理Kubernetes節點——托管節點池:無人工介入的節點自愈恢複
- 通過ACK 節點池高效管理Kubernetes節點——托管節點池:設定維護視窗與自動更新
彈性節點池
彈性伸縮能力是雲上降低成本的利器,通過節點池我們能夠提前規劃好叢集的節點配置,基于節點池進行節點的動态擴縮容。 ACK 提供了彈性節點池,将Kubernetes的元件Cluster-AutoScaler和節點池結合,Cluster-AutoScaler監控叢集的Pod數和節點數,根據叢集中pod使用情況動态伸縮節點池的數量。 當建立一個彈性節點池的時候,時會将對應的伸縮組 ClusterAutoScaler,當叢集資源不足, 建立的Pod由于無法排程而出于Pending狀态時,ClusterAutoScaler 會觸發

托管節點池
Kubernetes 是一個分布式作業系統,分布式系統最大的挑戰在于面對失敗和不确定性。 随着在kubernetes上運作的工作負載種類越多,不可避免會出現節點層面的異常,例如底層異常,磁盤過滿,網絡異常導緻的節點失聯等。 面對這些異常情況我們當然可以手動登陸到節點上執行恢複,但是當維護一個成百上千節點規模的叢集時,一台台維護操作肯定不現實,而且每種異常情況對應的恢複操作也不相同,需要有着豐富經驗的運維人員24小時待命,這樣會帶來巨大的運維成本。 同樣在運維中,随着Kubernetes和作業系統的演進,叢集的節點也需要不定期更新,例如使用最新的核心特性,或者安全布丁,需要更新作業系統版本,或者更新叢集的容器運作時等,如何在大規模叢集中快速更新同時保障系統的穩定性,也是讓運維人員頭疼的問題。 托管節點池就是為了解決大規模下的運維問題而設計。 托管節點池的設計思路如下:
- 支援節點更新,包含作業系統和運作時版本。 相比其他廠商銷毀并建立節點的更新方式,ACK 托管節點池通過重置系統盤執行更新,可以節省建立節點的賬目成本,同時也能支援預付費場景。
- 支援配置自動更新。 節點更新會影響叢集的算力,很多運維操作會選擇在業務低峰的時間段。 托管節點池支援在預設的維護視窗内自動更新,幫助辛苦的運維人員在夜晚能睡一個安穩覺
- 精細的更新控制,支援MaxUnavailable 和 MaxSurge 等參數,當更新結果不符合預期,通過MaxUnavailable 可以及時終止更新止血,避免擴大影響範圍 ; MaxSurge 可以設定更新前額外擴容節點,保障更新過程中算力總量,防止因為節點更新中因為資源不足導緻業務無法順利驅逐。
邊緣叢集
邊緣雲計算是基于雲計算技術的核心和邊緣計算的能力,構築在邊緣基礎設施之上的新型計算平台,并正在成為行業的新焦點。阿裡雲邊緣托管Kubernetes叢集在雲端提供一個标準、安全、高可用的Kubernetes叢集,整合阿裡雲虛拟化、存儲、網絡和安全等能力,并簡化叢集運維工作。
https://help.aliyun.com/document_detail/163259.htmlACK邊緣叢集中,包含兩類節點池。 首先是雲上節點池,雲上節點池部署運作叢集管控必須的addon,例如日志,監控,邊緣控制器,此外在雲ECS上部署
edge-tunnel-server
元件做隧道打通,并通過公網SLB挂載,為邊緣節點池建立安全加密的公網運維通道。 邊緣節點池每個對應一個EdgeUnit,節點的底層包含ENS和自有邊緣節點兩種類型。在邊緣節點上會部署Edge Agent等元件, 幫助節點擴充邊緣節點自治的能力。 參考:
混合雲節點池
業務上雲已是大勢所趨,但是對于企業客戶而言,出于資料主權和安全隐私的考慮,企業客戶會考慮使用多雲混合雲方式開展業務,然而不同雲環境的基礎設施能力、安全架構的差異會造成企業IT架構和運維體系的割裂,加大多雲混合雲實施的複雜性,提高了運維成本。 阿裡雲容器服務ACK提供的多雲混合雲方案具有統一的叢集管理,動态彈性和服務治理能力。 使用者可以将一個線下的Kubernetes叢集添加納管到線上,在納管的叢集中建立雲上節點池。 通過節點池能擴縮容雲上的ECS節點,并添加到納管叢集中,提供工作負載支援。當出現突發的算力需求,線下來不及擴容,線上彈性節點池就能發揮作用,線上節點池能夠通過雲上的極速彈性能力提供相應計算資源,及時滿足算力需求。
總結
通過節點池能夠對ACK 叢集提供更細粒度的節點抽象能力,通過支援不同類型的節點池,能夠滿足線上,邊緣等各種場景,在雲上也能夠通過節點池提供彈性,托管等能力,為使用者管理ACK節點提供更低的成本和更好的便捷性。