ContainerOS是為容器場景垂直優化的阿里云官方操作系統,完全兼容現有的Kubernetes生態。ContainerOS對OS啟動速度、鏡像拉取時間等方面進行了優化,以提升ACK節點擴容速度和節點擴容體驗。本文介紹如何使用ContainerOS實現節點極速擴容。
索引
前提條件
已配置ContainerOS為托管節點池的操作系統。具體操作,請參見使用ContainerOS。
第一次基于ContainerOS創建托管節點池的場景下,已確保Kubernetes集群的如下組件處于最新版本,以便更好地實現節點擴容性能。
創建集群時使用的網絡組件:Terway組件、Flannel組件
創建集群時默認的存儲插件:csi-plugin
您可以在目標集群信息頁面,選擇
,查看組件是否為最新版本。如果組件卡片右下方出現升級,請單擊升級完成組件升級。
注意事項
為提升啟動速度,ContainerOS采用預置鏡像的方式減少鏡像拉取時間。在使用過程中,請勿手動升級ACK相關組件(Terway或Flannel、csi-plugin),以免出現預置鏡像版本與應用版本不一致的情況,導致啟動耗時變長。
借助于容器鏡像分層的特性,相較于拉取全新鏡像,ContainerOS更新鏡像的耗時更短,彈性能力更優。但仍然建議您提前完成相關組件升級,以獲得更好的節點擴容體驗。
ContainerOS擴容優勢
優化項 | 說明 |
OS啟動速度 | 通過簡化OS啟動流程,ContainerOS可以有效降低OS啟動時間。ContainerOS是云上虛擬機的操作系統,涉及到的硬件驅動較少,可以將必要的內核驅動模塊修改為built-in模式。此外,ContainerOS去除initramfs,并顯著簡化udev規則,使得OS啟動速度大幅提升。以ecs.g7.large規格的ECS實例為例,Alibaba Cloud Linux 3首次啟動時間為1分鐘以上,而ContainerOS僅需2秒左右。 |
鏡像拉取耗時 | ECS節點啟動完成后,需要拉取部分組件的容器鏡像,以在ACK場景下執行一些基礎性的工作。通過預置集群管控必備組件的容器鏡像,ContainerOS可以減少節點啟動過程中因鏡像拉取而帶來的耗時。 以Terway網絡組件為例,節點需等待Terway組件的容器就緒后,才可以轉換為就緒狀態。網絡拉取的長尾效應將帶來極大的耗時。為避免此問題,ContainerOS通過預置的方式提前將此組件提前安裝在OS內部,使得組件可以直接從本地目錄獲取,避免網絡拉取鏡像耗時。 |
節點彈性性能 | 通過與ACK管控鏈路能力結合,ContainerOS可以有效提高節點彈性性能。 |
下圖統計了從空的ACK節點池擴容的端到端的P90耗時,計時從下發擴容請求開始,到90%的節點處于就緒狀態結束。相較于CentOS和Alibaba Cloud Linux 2自定義鏡像方案,ContainerOS性能優勢明顯。具體數據如下圖所示。
本示例中提供的數據僅為理論值,實際數據可能會因產品功能優化略有偏差,請以您的操作環境為準。
操作步驟
如果您有同時啟動大量節點的業務場景,例如同時擴容超過100個ECS節點,您可以手動配置Kube Controller Manager、Kube Scheduler、APIServer三個優化項以提升節點擴容速度。
部分API默認支持的最大連接數為100,因此同時啟動少于100個ECS節點時無需額外配置。
Kube Controller Manager限流調整
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在組件管理頁面的核心組件頁簽,定位到Kube Controller Manager,然后單擊卡片右下方的配置。
在參數配置對話框,配置kubeAPIQPS為800、kubeAPIBurst為1000(其余選項按需配置),然后單擊確定。
說明基于測試數據,推薦您按照上方數值進行配置。如有其他需求,您也可以按照自身業務場景靈活配置。
Kube Scheduler限流調整
登錄容器服務管理控制臺,在左側導航欄選擇集群。
在集群列表頁面,單擊目標集群名稱,然后在左側導航欄,選擇 。
在組件管理頁面的核心組件頁簽,定位到Kube Scheduler,然后單擊卡片右下方的配置。
在參數配置對話框,配置connectionQPS為800、connectionBurst為1000(其余選項按需配置),然后單擊確定。
說明基于測試數據,推薦您按照上方數值進行配置。如有其他需求,您也可以按照自身業務場景靈活配置。
APIServer數量調整
集群內APIServer的副本數量根據負載進行彈性伸縮。如果同一時間彈出節點較多,APIServer會進行擴容,增加節點Ready的耗時。您可以提前提交工單,調整APIServer的副本數量,優化擴容效果。