秒级启动万个容器,探秘阿里云容器镜像加速黑科技
阿里云容器與存儲團隊展開合作,利用DADI加速器支持鏡像按需讀取和P2P分發,實現3.01秒啟動10000個容器,完美杜絕容器冷啟動的數分鐘漫長等待,以及鏡像倉庫大規模并行分發場景下的網絡擁堵。
年關將至,各種年貨節、秒殺商品、倒計時直播即將紛至沓來。這些業務的共同點都是流量瞬間暴增,必須在立刻籌備大量的服務器,并在極短時間內擴容容器承接線上流量,避免系統崩潰。除了需要集群節點的快速擴容,也對應用部署速度提出更高要求。
部署啟動快常被認為是容器的核心優勢之一:本地鏡像實例化成容器的時間很短,即“熱啟動”;而在本地無鏡像情況下的“冷啟動”,需要先從鏡像倉庫下載鏡像并解壓縮后才能拉起容器,受網絡和磁盤性能影響較大,耗時數分鐘;大規模批量冷啟動甚至可能導致Registry因網絡擁堵而無法響應。
針對冷啟動的痛點,阿里云推出一個全新存儲引擎DADI加速器,將容器冷啟動耗時縮短至數秒。方案沉淀自阿里集團內部大規模應用的數據訪問加速經驗,曾在雙十一大促中為大規模容器集群擴容提供了秒級拉起能力。
本次測試場景是在 1000 臺4核8G的節點組成的Kubernetes集群中進行,阿里云容器服務Kubernetes (ACK) 能在極短時間內擴容出 1000 臺節點worker并加入到Kubernetes 集群中。ACK 的此能力在應對大促,秒殺,短時流量洪峰時具有亮眼的表現。
同時針對本次測試場景,利用Kubernetes 強大的擴展性和自定義控制器,加快在大規模集群中創建應用和刪除應用的速度,保障了測試在極短時間內方便快捷的進行。
阿里云容器團隊聯合存儲團隊研發的DADI加速器在本次測試中啟動10000個容器僅需3.01秒,10秒內啟動了近60000個容器。
Figure 1 - 1萬個容器的啟動耗時為3.01秒,其中p999分位耗時2.97秒。
同時針對1萬個容器的冷熱啟動進行對比,即在本地有無鏡像緩存對啟動時間的影響,熱啟動耗時2.91秒,其中p999耗時2.56秒
Figure 2 - 1萬個容器的冷熱啟動耗時對比
DADI冷啟動由于數據按需從P2P網絡中獲取,減輕了磁盤壓力避免發生IO擁堵,因此長尾容器較少。
此外,還進行了限時摸高測試。在10秒的限制時間內利用1000臺宿主機啟動了59997個容器,在10.06秒時第6萬容器啟動完畢:
Figure 3 - 限時 10 秒摸高測試
注:上述圖示數據,均在阿里云容器團隊的容器服務ACK中進行。為方便獲得每個容器的啟動時間,采用C/S模式:worker中每個容器拉起后向測試的httpServer上報自己狀態,以httpServer記錄的請求時間作為容器啟動耗時。
冷啟動的關鍵優化,DADI大地加速器
一般而言,完整的容器應用鏡像往往有數百M甚至上G的大小。在社區的容器Registry的實現中,鏡像會以分層方式存儲,每一層都是一個tgz包。當容器啟動時, 容器引擎會從容器Registry拉取所有的層,在本地實現解壓后,通過層次化文件系統構建完整的容器rootfs。而容器啟動過程中所需要的數據可能只占鏡像文件中極小一部分比例。本次測試所用鏡像完整大小為894M,容器啟動所需數據僅15M,占比約1.6%。如何能避免下載完整鏡像到本地而直接獲取到這1.6%啟動數據是加速容器啟動的關鍵。
為何DADI加速器能為大規模容器集群擴容提供秒級拉起的能力?其核心在于“按需讀取”容器運行時所需數據,避免傳統容器 “下載鏡像 -> 解壓鏡像 -> 啟動容器”的啟動步驟,容器啟動耗時從分鐘縮短至數秒。這其中包括以下三點優化工作:
- 鏡像格式優化: 為了避免下載+解壓造成的高時延,DADI團隊設計了一種新的鏡像格式,內含索引,無需下載和解壓完整鏡像即可直接訪問;
- 按需P2P數據讀取: 為減輕批量擴容時對單點Registry帶來的總體負載,DADI利用樹形P2P網絡對進行數據分發。即少數P2P根節點從Registry獲取,其他節點(宿主機)之間可相互傳輸數據,批量擴容時可快速分發數據到所有節點;
- 高效的解壓縮算法: DADI提供了一種新型的壓縮文件格式,可按需單獨解壓用戶訪實際問的數據,且解壓時間開銷可忽略不計。
Figure 5 - 容器啟動流程對比
利用DADI方案啟動容器時,僅從鏡像Registry下載幾KB的鏡像元數據,并創建虛擬設備Overlay Block Device掛載到容器工作目錄上, Docker引擎會認為鏡像已經加載完畢。在容器啟動時所需的鏡像數據則從本地緩存或者P2P 網絡的上游節點按需下載。P2P網絡可以充分緩解對Registry的訪問壓力。
Figure 6 – DADI P2P數據分發
隨著Kubernetes 被越來越廣泛地接受,阿里云ACK支撐了各行各業的企業級客戶。此次ACK和DADI的深度整合,實現秒級啟動萬個容器,從容應對大規模應用擴容和發布,相關技術在未來也將成為Serverless容器的啟動加速利器。
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的秒级启动万个容器,探秘阿里云容器镜像加速黑科技的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UC上云 为网络大型游戏保驾护航
- 下一篇: 自研云原生数据仓库AnalyticDB再