基于Kubernetes構(gòu)建混合云的利弊
在過去一年里,混合云被稱為是企業(yè)開啟云端轉(zhuǎn)型的最佳選擇。問題是,我們將以何種方式開啟混合云之旅?

縱觀混合云平臺(tái)及解決方案,無非分兩大類。一類是基于Kubernetes構(gòu)建的;另一類是不基于Kubernetes構(gòu)建的。不管是多大規(guī)模的企業(yè),屬于哪種類型的企業(yè),只要你想在本地或者異地基礎(chǔ)設(shè)施上實(shí)現(xiàn)與公有云的連接與集成,就一定繞不開與Kubernetes相關(guān)的問題。而在解決這個(gè)問題之前,我們先來了解下,Kubernetes和混合云之間到底是怎樣一種關(guān)系?
Kubernetes和混合云之間的各種關(guān)系
作為開源容器編排工具,Kubernetes本身就是一個(gè)混合云平臺(tái),用戶可以按需在本地或者公有云基礎(chǔ)設(shè)施上進(jìn)行部署,管理運(yùn)行在容器中的應(yīng)用。不僅如此,Kubernetes還在混合云架構(gòu)中發(fā)揮了一個(gè)最關(guān)鍵的作用,那就是它提供了一種統(tǒng)一的方式來部署和管理應(yīng)用,讓應(yīng)用無論在哪個(gè)基礎(chǔ)設(shè)施上,都能擁有一致性體驗(yàn)。不管是公有云、私有云還是托管的數(shù)據(jù)中心,都能進(jìn)行統(tǒng)一部署。并且,由于Kubernetes可以同時(shí)管理跨多種基礎(chǔ)設(shè)施類型的應(yīng)用,可以讓用戶的公有云、私有云以及托管數(shù)據(jù)中心實(shí)現(xiàn)跨平臺(tái)管理。
由于Kubernetes能給混合平臺(tái)管理帶來各種好處,所以很多廠商都在以Kubernetes為核心構(gòu)建混合云解決方案。比如:谷歌的Anthos、VMware的Tanzu、AWS的EKS Anywhere等等。那么,不以Kubernetes作為底層資源管理層的產(chǎn)品有哪些?最具代表性的是AWS Outposts和Azure Stack,他們把許多公有云服務(wù)從他們各自的平臺(tái)擴(kuò)展到內(nèi)部基礎(chǔ)設(shè)施部署,比如基于云計(jì)算的虛擬機(jī)和數(shù)據(jù)庫,讓用戶在數(shù)據(jù)中心使用AWS或Azure云平臺(tái)上的許多公有云服務(wù)成為可能,包括API調(diào)用和各種管理工具等。
Kubernetes選型由業(yè)務(wù)需求決定
那么,從用戶應(yīng)用的角度看,該如何選擇呢?到底要不要基于Kubernetes構(gòu)建混合云平臺(tái)?非Kubernetes模式能帶來更好的用戶體驗(yàn)嗎?答案是根據(jù)你的業(yè)務(wù)需求來選擇!
是否要通過Kubernetes管理工作負(fù)載,要看你的應(yīng)用部署在哪里。如果你選用的是 Anthos、Tanzu等云平臺(tái),你可以通過內(nèi)嵌的Kubernetes來編排一切;但如果你選擇的是AWS Outposts和Azure Stack這樣的解決方案,可以使用CloudWatch、CloudTrail、CloudFormation等本地化的管理工具來部署和管理應(yīng)用。當(dāng)然,如果你只喜歡Kubernetes這種管理方式,而不想使用上述的任何云解決方案,你也可以選擇基于Kubernetes的其他混合云平臺(tái)。
除了應(yīng)用部署問題,還要考慮應(yīng)用被容器化的程度,Kubernetes可以像管理容器一樣管理虛擬機(jī),這點(diǎn)在 Tanzu和 Anthos中都能實(shí)現(xiàn)。但在Kubernetes中管理虛擬機(jī)總歸有點(diǎn)奇怪,因?yàn)镵ubernetes的設(shè)計(jì)初衷是為了編排容器,而虛擬機(jī)的啟動(dòng)和停止速度通常不像容器那樣快,而且很少有人以容器的方式啟動(dòng)多個(gè)VM實(shí)例。如果你的工作負(fù)載主要由vm組成,那么使用不以Kubernetes為核心的混合云平臺(tái)可能效果會(huì)更好。
另外,還有一個(gè)值得重點(diǎn)關(guān)注的問題是,我們對(duì)于Kubernetes是否能長遠(yuǎn)投資,必須持懷疑態(tài)度?,F(xiàn)在,Kubernetes之所以很熱,是因?yàn)楣雀韬蚔Mware都把它納入到混合云的基礎(chǔ)設(shè)施層;但畢竟Kubernetes只有7年的發(fā)展歷程,很有可能會(huì)“曇花一現(xiàn)”。就像5、6年前的Docker,當(dāng)初Kubernetes沒出現(xiàn)的時(shí)候,幾乎所有人把賭注都?jí)涸诹薉ocker上。所以,技術(shù)創(chuàng)新永無止境,我們不能盲目追熱,而是要冷靜思考,充分考慮到應(yīng)用的靈活性。
就目前應(yīng)用現(xiàn)狀來看,基于kubernetes的混合云平臺(tái)一定比那些只依賴于云供應(yīng)商提供的專有工具更靈活,比如:如果你使用的是Azure Stack,就很難遷移到AWS Anthos,但從Anthos遷移到Tanzu相對(duì)要容易得多。盡管不是無縫的,但兩個(gè)平臺(tái)都建立在統(tǒng)一的Kubernetes管理平臺(tái)上。
小結(jié):綜合來看,不管你選不選擇kubernetes做混合云管理平臺(tái),其實(shí)都沒有關(guān)系,只要能充分考慮到利弊,最終能滿足你的業(yè)務(wù)需求,那就是一次成功的選型。