如果您是企業開發/運維人員,或是IT愛好者,那您一定對Kubernetes —— k8s服務有所耳聞。
一句話概括k8s, 它是一個能對容器化應用進行自動化部署、彈性伸縮和管理的開源容器平臺。
自2013年Docker興起,Mesos起勢,到現在這一擁有舵手logo的Kubernetes一統容器天下,k8s在IT汪洋中開闢了一條新的航道,它的目標不僅僅是成為一個編排系統,更是提供了一個規範和框架去描述集群的架構,去維持服務的狀態,去構建雲原生應用——k8s基本上是一種可以部署任何複雜應用的平臺服務。
eBay和16年開始火爆全球的Pokémon Go便是基於k8s的,Twitter正在從Mesos遷到k8s,還有京東(OpenStack轉k8s),螞蟻金服,中國聯通,網易(網易團隊報告說,Kubernetes已將研發效率提高了100%以上,部署效率提高了280%)。
容器服務為企業帶來的架構優化、效率提升和成本降低是顯而易見的,也因此逐漸成為了今天不少企業IT架構的轉型方向。
概括來說,k8s包括但不限於以下幾點好處:
•恢復機制:k8s幫你監管pods,出問題了自動修復當然,k8s不可能適用於所有場景。
簡單的CMS,企業內部OA等,需要k8s嗎?或許沒必要。
開源軟體,語言框架都是工具,如何取捨需根據具體需求。若企業具備應用現代化,雲原生化能力,想改造業務模型和軟體架構,那結合k8s的確可以幫助到企業進行應用數位化轉型。
目前各主流雲廠商均有託管式k8s服務,那在全員上雲的今天,特別是有出海上雲需求的企業,如何選擇合適的雲廠商託管式k8s服務呢?
這裡我們就選時下三大雲廠商的k8s服務,Google GKE,Microsoft AKS和Amazon EKS做下橫向對比。
首先聲明下,一些大家沒什麼區別或區別不大的特性,比如容器健康檢查,可持續存儲,Addons ,GPU支持性(均支持)等沒有在表裡列出。
我們從幾個方面做對比,首先看看一些基本信息↓
表1,GKE,AKS,EKS基本信息對比
作為k8s之父,Google目前仍是k8s服務的王者是毋庸置疑的,畢竟比AKS和EKS多發展了3~4年,先發優勢和積極的體系貢獻是不可忽視的。
從版本上看,GitHub上的開源k8s在10月16剛發布了1.16.2的版本, Google GKE現在已能在rapid channel測試和驗證1.15.4了,Global Azure也已經可以預覽1.15.4,進度相仿;而AWS目前停留在穩定版1.14.7。
同時,微軟AKS支持k8s的區域是最多的,多達29個,其中還包括中國區的兩個,而另兩家則沒有國內支持。
這個不難理解,畢竟Azure本身支持的地區就是所有雲廠商裡最多的——多達54個。花費上看,GKE著實便宜,而AWS EKS竟然還要對control panel收費。
接下來看看集群管理方面的對比↓
表2,GKE,AKS,EKS集群管理對比
可以很直觀地看出Amazon EKS在這部分沒啥能突出的地方。
使用過AWS EKS的人都會發現,創建集群實在是很麻煩,步數很多,其實不僅僅k8s部分,AWS連打通兩個虛擬網絡都會比Azure多n 步(n>3)。
創建一個集群微軟和谷歌都只要一條命令,不會花很久,而AWS竟然需要20分鐘。SLA方面,谷歌最強,當之無愧。
值得注意的是,微軟是這三家唯一能通過Azure Policy實現Cluster Governance策略管理的。實際上,Azure Policy 可以用來管理雲端資產的合規性,這個資產當然也包括AKS。
另外微軟AKS實現彎道超車的一點是可以通過Azure Dev Spaces,可以在AKS 中測試并迭代開發你的整個微服務應用程式,而無需複製或模擬依賴項。
Azure Dev Spaces 降低了在共享 AKS 集群中與團隊進行協作的負擔和複雜性, 它還允許直接在 AKS 中運行和調試容器,幫助實現快速迭代。
最後,讓我們看看容器註冊表 (Container Registry),或者稱為容器託管。
表3,容器託管對比
從容器託管服務方面看,三家目前均不支持自動化的漏洞掃描,但是手動掃描是沒問題的。
容器託管方面,Azure明顯更有優勢。相比谷歌和EKS,AKS使用籤名進行部署時的映像驗證,映像格式也比另兩家多了Helm,可以使用 Azure 容器註冊表作為應用程式圖表的 Helm 存儲庫,使用 Helm的話,應用程式定義為存儲在 Helm 圖表存儲庫中的圖表。 這些圖表定義配置和依賴項,並可在整個應用程式生命周期內進行版本控制,也包括異地複製功能。
谷歌的容器註冊表竟然不支持異地複製,令人詫異。而且只有微軟AKS支持從Docker file直接創建容器映像。
總的來說,谷歌在k8s的總體地位仍在保持,但微軟AKS在一些地方已經實現了彎道超車,比如aci的集成和serverless。
特別AKS運行的平臺——Azure本身結合了微軟自帶的企業屬性,生態非常完整,比如用Azure AD結合 RBAC對 Kubernetes 資源訪問實現精細控制,能輕鬆將 Kubernetes 與受 SLA 支持的 Azure 服務(如 Cosmos DB)進行集成,另外Azure備份,監控,安全等方面也完善了開源軟體運用在企業環境中使用痛點,提出了解決方案並呈現給用戶,且作為一家平臺與生產力公司,微軟正全面擁抱開源,並不斷加大對開發者支持的力度,回饋給社會。
而相較之下,AWS的EKS整體表現平平,作為雲廠商裡唯一對control plane收費的廠商,其本身並未對k8s的一些特性做到極致。
事實上AWS花了很長時間才接受Kubernetes,可能是因為從AWS的角度來看,他們已經擁有ECS(它使得大規模管理容器變得容易),但慢慢才發現自家的ECS無法戰勝k8s,因此只好也做起了自己的k8s服務。
不過,作為老牌雲廠商,EKS絕對不會太差。AWS對開源態度看似一般,實際上AWS的開源策略是直接和開源廠商競爭,比如推出了自己的Linux和RedHat競爭,推出了自己的Elastic Search發行版和Elastic公司競爭。
而微軟則不同,微軟是與開源廠商合作推出新的產品,比如Azure RedHat OpenShift就是和紅帽合作的服務,HD Insight是和Cloudera合作。
正如Kubernetes 開源項目聯合創始人、微軟傑出工程師 Brendan Burns 所說:「我們正迎來一個智能雲與智能邊緣的時代,這為全球各地的開發者帶來了以創新方式開發雲原生應用的更廣闊的發展機遇。」
希望本篇不算詳盡的k8s服務對比,能給對此感興趣朋友們提供一些參考。
投資作➖法
速度作➕法
省時、省心、省成本地快速拓展海外市場
微軟智能雲 Microsoft Azure(海外版)2019第四季度
特別推出
買即返15%海外版Microsoft Azure使用額度
福利優惠
並基於多年全球生態客戶經驗推出
高性價比、適配行業特性的海外IT部署架構
4大熱門出海行業精選解決方案
專家一對一定製化服務
碼上搶佔額度👆
尊享海外雲五重好禮