谷歌、微軟、亞馬遜Kubernetes服務(wù)大比拼
譯者注:
本文帶有一些主觀色彩,作者的觀點(diǎn)是否客觀我還沒(méi)有去考證,僅供參考。以下是對(duì)本文中一些縮寫的解釋:
- Google GKE = Google Kubernetes Engine
- Microsoft AKS = Microsoft Azure Kubernetes Services
- Amazon EKS = Amazon Elastic Container Service for Kubernetes
之前已經(jīng)有非常多關(guān)于這些托管在云上的Kubernetes供應(yīng)商之間的對(duì)比,但是,或許這次的對(duì)比是最有誠(chéng)意的。
下面是一張Google表格的截圖,它對(duì)比了GKE、AKS和EKS。你可能注意到有些格子里面已經(jīng)有了評(píng)論。這些評(píng)論會(huì)鏈接到我獲取信息的地方。
更新:這份表格現(xiàn)在也包含了IBM IKS和阿里云ACK。

如果有任何不正確的地方,請(qǐng)?jiān)诒砀窭飳懴略u(píng)論或者在文章下面給我留言。
這將會(huì)是一次殘酷的對(duì)比,如果有人能提供一些事實(shí)依據(jù),我會(huì)很樂(lè)意改變我的想法。
就目前的情況,我用過(guò)EKS,也是AWS的重度用戶。我還接觸過(guò)一點(diǎn)GKE,但那只是不久前我出于個(gè)人目的,制作Kubernetes The Hard way這個(gè)教程時(shí)在GKE上啟了一個(gè)簡(jiǎn)單快速的測(cè)試集群。我挺想多使用一下GKE的,但公司里用得是AWS。
自從去年我用了幾個(gè)月的Azure之后,就一直想回避它。當(dāng)時(shí)我是微軟的一個(gè)合作伙伴,所以免不了要使用Azure。它的部分功能還不錯(cuò),但是用戶體驗(yàn)和亞馬遜相比真是天壤之別。
我會(huì)根據(jù)不同的場(chǎng)景將我的建議分類。
新上的項(xiàng)目
我一直在試著權(quán)衡是否建議人們?nèi)ピu(píng)估谷歌、亞馬遜以及微軟提供的所有云服務(wù)。Kubernetes只是一個(gè)大型系統(tǒng)中的單一組件,還有其他的因素會(huì)影響我們的決定。但不管怎樣,其實(shí)現(xiàn)在各個(gè)云廠商所提供的功能和服務(wù)并沒(méi)有太大的不同。
當(dāng)然市場(chǎng)團(tuán)隊(duì)可能會(huì)說(shuō)并非如此,但當(dāng)你看看大部分公司所需要的那些功能特性,其實(shí)那些云廠商都能提供。
所以我們就簡(jiǎn)單粗暴一點(diǎn),比如你就只想用Kubernetes。那答案很清晰,就選GKE吧。
為什么?因?yàn)橛脦缀趺恳环N可量化的方式將它與競(jìng)爭(zhēng)對(duì)手相比,它都是更便宜、更快、更好的那個(gè)。
你可能會(huì)覺(jué)得集群創(chuàng)建時(shí)間并不是什么大問(wèn)題,3分鐘和20分鐘相比沒(méi)什么區(qū)別。畢竟你有多少次會(huì)去真正創(chuàng)建一個(gè)集群呢?好吧,如果要花費(fèi)20多分鐘而且有時(shí)還會(huì)報(bào)錯(cuò),那確實(shí)不會(huì)經(jīng)常去創(chuàng)建,因?yàn)槟銜?huì)為了適應(yīng)它而去改變自己的整個(gè)工作流程。
但是,如果創(chuàng)建集群只需要3分鐘,那你會(huì)發(fā)現(xiàn)你所用的測(cè)試基礎(chǔ)架構(gòu)是可以隨時(shí)丟棄重建的,這會(huì)是一種完全不同的工作方式。
網(wǎng)絡(luò)功能是另外一個(gè)因素,谷歌在這方面可是甩開其他對(duì)手10條街的水平。在高可用和擴(kuò)展性方面也差不多。
我不會(huì)說(shuō)表格中的每一行都是一個(gè)原因,因?yàn)槲矣X(jué)得數(shù)據(jù)不言自明。
我們已經(jīng)被AWS綁定了
那你可能沒(méi)有太多的選擇,光是一個(gè)Kubernetes還不足以成為遷移到其他云平臺(tái)的理由。
希望你能看到這次對(duì)比并且認(rèn)識(shí)到情況可能會(huì)更糟。EKS剛推出不久,亞馬遜團(tuán)隊(duì)會(huì)快速迭代。我對(duì)于亞馬遜能否在網(wǎng)絡(luò)性能或者虛擬機(jī)啟動(dòng)時(shí)間上趕上谷歌持懷疑態(tài)度,但情況還是可以忍受的。
如果他們能在主節(jié)點(diǎn)上啟用默認(rèn)的準(zhǔn)入控制器就好了。還有,我完全不明白為什么創(chuàng)建集群會(huì)這么慢。我在工作中測(cè)量過(guò)集群構(gòu)建時(shí)間,每次都要花大約20分鐘才能達(dá)到我能在上面跑集成測(cè)試的狀態(tài)。
更新:準(zhǔn)入控制器已經(jīng)被加上了。
另一個(gè)煩人的地方是缺少工作節(jié)點(diǎn)的管理。希望EKS的工程師們能像GKE那樣都打包集成好。
有意思的是我注意到EKS居然支持i3.metal實(shí)例,這是Kubernetes支持裸金屬工作節(jié)點(diǎn)的唯一解決方案。這對(duì)于一些用戶來(lái)說(shuō)可能會(huì)有用。
我的公司正在考慮用Azure
同樣的,你真正能做的也不多。我的建議是準(zhǔn)備一個(gè)demo來(lái)對(duì)比AKS和GKE,試著將開放人員的經(jīng)驗(yàn)傳遞給做決定的人。
給他們展示Azure上的某些操作是如何通過(guò)一個(gè)難用的交互頁(yè)面才能完成,其他的需要Powershell,還有一些亂七八糟的還要用到命令行。試著讓人們?nèi)フf(shuō)明操作緩慢的原因,以及它在整體上是如何影響DevOps流水線和自動(dòng)化的。沒(méi)錯(cuò),你確實(shí)能讓Azure跑起來(lái),但生活已經(jīng)如此艱難,為什么不讓自己輕松一點(diǎn)呢?
有可能你被類似Active Directory這樣的需求所綁架了,那就真的是不走運(yùn)了。
我說(shuō)下面這句話的時(shí)候是很認(rèn)真的:如果我所在的公司決定遷移到Azure上,我會(huì)重新找一份工作的。順便說(shuō)一句,情況并非總是如此。我年輕的時(shí)候管理過(guò)Windows服務(wù)器,當(dāng)時(shí)每個(gè)禮拜我都要修復(fù)損壞的TFS(Team Foundation Server),還要走進(jìn)機(jī)房去更換磁帶。
現(xiàn)如今我想要用編程的方式來(lái)控制基礎(chǔ)架構(gòu)。所以它需要高效又沒(méi)有太多Bug,這樣我才能在上面去構(gòu)建一些酷炫的自動(dòng)化工程。而在Azure這樣的產(chǎn)品上工作,尤其是我還用了好多年的AWS,真的會(huì)讓人感到絕望。
更新:為了量化Azure AKS到底有多慢以及有多少bug,有可能會(huì)想看看Dolos項(xiàng)目。
對(duì)于所有那些正在從本地?cái)?shù)據(jù)中心往Azure上遷移的人來(lái)說(shuō),在敏捷性方面可能會(huì)是一個(gè)進(jìn)步,所以我祝你好運(yùn)吧。
好了,現(xiàn)在你清楚了!這個(gè)網(wǎng)站需要對(duì)比跑在云上的Kubernetes服務(wù)。我的建議是只要有可能就用谷歌 GKE.如果你已經(jīng)上了AWS,那么就試試EKS吧,但現(xiàn)階段它真的給不了你太多東西。在他們將可管理的工作節(jié)點(diǎn)以及其他一些功能集成之前,你可能***先看看Kops和一些其他的云產(chǎn)品。