前言
我們都知道,ACK與ASK是阿里雲兩種不同的業務形態,那麼它們有何異同呢?
ASK的容器是一等公民
由於ACK需要先部署ECS,然後在ECS上部署應用容器,這時容器就是二等公民;
而ASK無需部署ECS,可以直接在ECI上部署應用容器,因此容器是一等公民。
ASK適用場景
由於ASK的彈性伸縮能力較ACK更強更靈活,所以適用場景均爲彈性相關。
-
應用託管
-
在線業務彈性
-
數據計算
-
CI/CD持續集成
-
定時任務
-
測試環境
ASK核心功能
虛擬節點
-
ASK集羣中基於虛擬節點創建Pod
- 虛擬節點實現了Kubernetes與彈性容器實例ECI的無縫連接,讓Kubernetes集羣獲得極大的彈性能力,而不必關心底層計算虛擬容量。可通過客戶端查看服務情況,虛擬節點不佔用任何計算資源。
Pod安全隔離
-
ASK集羣中的Pod基於阿里雲彈性容器實例ECI運行在安全隔離的容器運行環境中。
-
每個容器實例底層通過輕量級虛擬化安全沙箱技術完全強隔離,容器實例間互不影響。
-
實例在調度時儘可能分佈在不同的物理機上,進一步保障了高可用性。
-
ECI的容器實例底層運行在Allibaba Cloud Linux2操作系統之上,ASK集羣作爲Serverless容器服務,您無法訪問ECI底層OS運行環境。另外,此係統可免費使用。
Pod配置
-
Pod基於彈性容器實例ECI創建,支持原生的Kubernetes Pod功能,包括啓動多個容器、設置啓動多個容器、設置環境變量、設置RestartPolicy、設置健康檢查命令和掛載Volume、preStop等。
-
同時支持執行命令kubectl logs訪問容器日誌和智行kubectl exec進入容器
-
ECI支持多種規格配置的方式來申請資源和計費
-
制定CPU和Memory,包括容器和pod兩種
-
制定Pod的ECS規格
-
搶佔式實例
-
應用負載管理
-
支持Deployment、StatefulSet、Job/CronJob、Pod、CRD等原生Kubernetes負載類型。
-
不支持DaemonSet,Serverless集羣中不支持節點相關的功能
彈性伸縮
-
ASK集羣中沒有真實節點
-
無需考慮節點的容量規劃
-
無需考慮基於cluster-autoscaler的節點擴容
-
只考慮應用的按需擴容
-
-
可配置HPA或CronHPA策略進行Pod的靈活按需擴容
網絡管理
-
羣衆的ECI Pod默認使用Host網絡模式,佔用交換機VSwitch的一個彈性網卡ENI資源,與VPC內的ECS、RDS互聯互通。
-
Service:不支持Nodeport模式
-
Ingress:需要先安裝Ingress Controller
-
服務發現:需要先開啓PrivateZone
-
彈性公網:支持給ECI Node掛載EIP,或自動創建然後綁定到EIP實例上
-
存儲管理
-
Pod支持掛載阿里雲塊存儲和文件存儲
-
阿里雲塊存儲(EBS),需要先創建DiskController
-
阿里雲文件存儲(NAS),可使用NFS方式掛載NAS目錄,無需安裝flex-volume插件,可直接制定NAS目錄
-
日誌管理
-
在ASK集羣中無需部署logtail daemonset即可收集Pod的stdout和文件輸出日誌
-
在Serverless Kubernetes集羣中將業務容器的標準輸出和日誌文件收集到阿里雲日誌服務
-
ECI模式下不支持DaemonSet,通過將Job類任務掛載NAS盤,把輸出的日誌存儲在NAS盤,在通過另一個同樣掛載NAS盤的Pod來採集Job任務標準輸出到日誌系統中
-
日誌服務支持在ECI中通過Sidecar模式採集日誌