Kubernetes 做爲通用的容器編排系統,承載了普遍的應用和場景,包括 CI/CD,數據計算,在線應用,AI 等,然而因爲其通用性和複雜性,管理一個 Kubernetes 集羣對於不少用戶而言仍是充滿挑戰的,主要體如今:node
咱們相信將來用戶會更加關注應用的開發,而不是基礎設施的維護。體如今 Kubernetes 集羣中,咱們但願用戶可以關注在 pod/service/ingress/job 等應用編排語義上,對底層 node 則能夠減小關注。nginx
無需管理節點也能夠顯著下降集羣的運維管理成本,經統計 Kubernetes 常見的異常問題中大多數與節點相關,好比 Node NotReady 問題,也無需擔心 Node 的安全問題,以及基礎系統軟件的升級和維護。git
在 ASK 集羣中,咱們使用虛擬節點 virtual-kubelet 代替 ecs 節點,虛擬節點的容量能夠認爲是「無限大」,用戶不須要爲集羣的容量擔心,無需預先作容量規劃。docker
和 ACK 託管版同樣,ASK 的 Master(apiserver, ccm, kcm 等)資源被容器服務平臺託管,用戶無需管理這些核心組件的升級和運維,也不用付出成本。api
除了無需管理節點和 Master 外,咱們還對 Kubernetes 集羣管理作了大量簡化,包括默認託管不少 addon,用戶無需再管理一些基礎的 addon,也不須要爲這些 addon 付費。依賴阿里雲原生的網絡和存儲等能力,以及獨特的託管架構設計,咱們提供了極度簡化但功能完備的 Kubernetes 基礎運行環境。安全
功能網絡
ACK架構
ASK運維
存儲gitlab
須要部署 aliyun-disk-controller/flexvolume
無需部署(正在支持中)
CNI 網絡
須要部署 terway/flannel daemonset
無需部署,基於 vpc 網絡通訊
coredns 服務發現
須要部署 2 個 coredns 副本
無需部署,基於 privatezone 訪問
kube-proxy
須要部署 kube-proxy daemonset
無需部署,基於 privatezone 訪問
Ingress
須要部署 nginx-ingress-controller
無需部署,基於 SLB 七層轉發
免密拉取 ACR 鏡像
須要部署 acr-credential-helper
無需部署,默認支持
sls 日誌收集
須要部署 logtail daemonset
無需部署,默認支持
metrics 統計
須要部署 metrics-server
無需部署,開箱即用
掛載 eip
須要部署 terway
無需部署,使用 annotaion 指定
雲盤隨 pod 建立掛載
依賴 aliyun-disk-controller
無需部署,默認支持
彈性伸縮
須要部署 cluster-autoscaler
無需部署
GPU 插件
須要部署 Nivida-docker
無需部署,開箱即用
綜上能夠看到,ACK 集羣至少須要 2 臺 ecs 機器以運行這些基本的 Addon,而 ASK 集羣把這些基礎 Addon 化爲無形,能夠達到 0 成本建立一個開箱可用的 Kubernetes 集羣。
由於無需管理節點和容量規劃,所以當集羣須要擴容時也就不須要考慮節點層面的擴容,只須要關注 pod 的擴容,
這對於擴容的速度和效率都是極大的提高,目前一些客戶指定使用 ASK/ECI 的方式來快速應對業務流量高峯。
當前 ASK/ECI 支持 30s 徹底啓動 500 個 pod(至 Running 狀態),單個 pod 啓動能夠達到 10s 之內。
除去 ASK 集羣自己的低成本建立外,pod 的按需使用也讓不少場景下資源利用率達到最優。對於不少 Jobs 或者數據計算場景而言,用戶並不須要長期維護一個固定的資源池,這時 ASK/ECI 能夠很好的支持這些訴求。
經驗證,當 pod 一天中運行時間少於 16 個小時,則 ASK/ECI 的方式相比保有 ecs 資源池更節省經濟成本。
談起 ASK,必定會談到 ASK 的資源底座 ECI。ECI 是阿里雲基於 ECS IaaS 資源池提供的穩定、高效、高彈性容器實例服務。ECI 讓容器成爲了公有云的第一等公民,用戶無需購買和管理 ecs 就能夠直接部署容器應用,這種簡化的容器實例產品形態和 ASK 造成了一個完美的組合。
用戶能夠直接使用 ECI Open API 建立容器實例資源,但在容器場景中用戶廣泛須要一個編排系統,來負責容器的調度、高可用編排等能力,而 ASK 正是這樣的 Kubernetes 編排層。
對於 ASK 而言,ECI 讓 ASK 容器服務免去了搭建後臺計算資源池的必要,更不用爲底層計算資源池的容量而擔心。基於 ECI 就意味着基於整個阿里雲 IaaS 規模化資源池,自然擁有了庫存和彈性優點(好比能夠經過 Annotation 的方式指定底層 eci 對應的 ecs 規格,大部分 ecs 規格均可以在 ASK 中使用,知足多種計算場景的需求)。另外 ECI 和 ECS 複用資源池意味着咱們能夠最大化釋放規模化紅利,給用戶提供更低成本的計算服務。
ASK 對 Kubernetes 容器生態提供了完善的支持,目前已有大量客戶使用 ASK 來支撐以下各類場景:
ASK 集羣不支持 Helm v2,近期 ACK/ASK 會發布 Helm v3 的支持,以後用戶能夠很是方便的在 ASK 集羣中部署 Charts。
本文爲阿里雲內容,未經容許不得轉載。