Serdar Yegulalp
Kubernetes和容器改變了應(yīng)用程序的構(gòu)建、部署和管理方式。本文介紹一些比較優(yōu)秀的版本。
如果你需要進(jìn)行大規(guī)模的容器編排,那么Kubernetes(K8s)可以說是最佳選擇。谷歌推出的開源容器編排系統(tǒng)備受好評(píng),得到了很好的支持,而且發(fā)展非常迅速。
但是,K8s也非常龐大、復(fù)雜,并且難于設(shè)置和配置。不僅如此,很多繁重的工作都留給了最終用戶。因此,最好的方法不是抓取數(shù)據(jù)然后單獨(dú)去處理數(shù)據(jù),而是尋找一套完整的容器解決方案,其中包括K8s作為受支持的、受維護(hù)的組件。
在這里,我列出了10款最突出的K8s產(chǎn)品——它們相當(dāng)于包含了K8s和容器工具的發(fā)行版本,從某種意義上來說,類似于各家供應(yīng)商提供的Linux內(nèi)核及其用戶群的發(fā)行版。
請(qǐng)注意,所列出的并不包括專用云服務(wù),例如,亞馬遜EKS或者谷歌K8s引擎,而重點(diǎn)放在了能夠在本地運(yùn)行或者作為云托管選項(xiàng)運(yùn)行的軟件版本。
CoreOS Tectonic/Red Hat CoreOS
CoreOS是一家專注于容器的Linux發(fā)行版的提供商,與Docker兼容,但有自己固定的圖像格式和運(yùn)行時(shí),以及一個(gè)“企業(yè)級(jí)K8s”發(fā)行版。它們共同構(gòu)成了CoreOS Tectonic堆棧的基礎(chǔ)。
CoreOS操作系統(tǒng)——Container Linux之所以與眾不同,主要因?yàn)樗亲鳛橐唤M容器化的組件而交付的。這樣,就可以在不關(guān)閉正在運(yùn)行的應(yīng)用程序的情況下,順利地對(duì)產(chǎn)品進(jìn)行操作系統(tǒng)的自動(dòng)更新。CoreOS還支持對(duì)K8s進(jìn)行“一鍵式”更新。CoreOS Tectonic可以運(yùn)行在亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)、Microsoft Azure和裸金屬上。
Red Hat最近收購(gòu)了CoreOS,并計(jì)劃將其整合到Red Hat OpenShift中。容器Linux將被重新命名為Red Hat CoreOS。這一舉措預(yù)計(jì)要到2020年才能完成,而在此之前,容器Linux將繼續(xù)得到支持。據(jù)Red Hat,CoreOS Tectonic“幾乎所有”的特性在過渡后仍然可用。
K8s的Canonical版本
Ubuntu Linux的制造商Canonical提供了自己的發(fā)行版K8s。K8s的Canonical發(fā)行版的一大賣點(diǎn)是其備受好評(píng)、易于理解而且部署廣泛的底層Ubuntu Linux發(fā)行版。Canonical聲稱其堆棧將在任何云或者本地部署中工作,同時(shí)支持帶有CPU和GPU的工作負(fù)載。付費(fèi)客戶可以讓Canonical工程師遠(yuǎn)程管理他們的K8s集群。
Canonical的K8s發(fā)行版也有微型版本——Microk8s。開發(fā)人員和K8s新用戶可以在筆記本或者臺(tái)式機(jī)上安裝Microk8s,將其用于測(cè)試、實(shí)驗(yàn),甚至用于低配置硬件進(jìn)行生產(chǎn)。
Canonical和Rancher實(shí)驗(yàn)室(見下文)共同開發(fā)了一款產(chǎn)品,即,云原生平臺(tái),它結(jié)合了Canonical的K8s發(fā)行版與Rancher的容器管理平臺(tái)。其思想是使用K8s管理每個(gè)集群中運(yùn)行的容器,并使用Rancher管理多個(gè)K8s集群。云原生平臺(tái)將與Rancher 2.0一起提供,后者目前是beta預(yù)覽版。
Docker社區(qū)版/Docker企業(yè)版
對(duì)我們很多人來說,Docker就是容器。從2014年開始,Docker就有了自己的集群和編排系統(tǒng)Docker Swarm,直到最近它還是K8s的競(jìng)爭(zhēng)對(duì)手。然后在2017年10月,Docker宣布將在其Docker社區(qū)版和Docker企業(yè)版2.0及其更高版本中加入未經(jīng)修改的普通狀態(tài)下的K8s,這將作為標(biāo)準(zhǔn)包。
Docker企業(yè)版3.0增加了Docker K8s服務(wù),這其實(shí)是一種K8s集成,使開發(fā)人員桌面和產(chǎn)品部署之間的K8s版本保持一致。
簡(jiǎn)而言之,Docker公司已經(jīng)閱讀了容器協(xié)調(diào)墻上的文字,并承認(rèn)K8s比Swarm更適合管理大型和復(fù)雜的容器環(huán)境。然而,Docker仍然包括其原始的集群系統(tǒng)“Swarm模式”,用于更簡(jiǎn)單的工作——例如,在防火墻應(yīng)用程序后面的本地應(yīng)用程序,這類程序不會(huì)增長(zhǎng)太多,或者維持不需要修改的現(xiàn)有Swarm模式集群。
Heptio K8s訂購(gòu)版
K8s的兩位創(chuàng)造者,Craig McLuckie和Joe Beda成立了Heptio,為K8s提供服務(wù)和產(chǎn)品。他們的第一款主要產(chǎn)品是Heptio K8s訂購(gòu)版(HKS),這種K8s部署由Heptio提供7×24小時(shí)付費(fèi)支持。起價(jià)為每月2000美元。
Heptio的主要賣點(diǎn)是不鎖定供應(yīng)商的企業(yè)級(jí)K8s。其部署可以運(yùn)行在公有云或者專用硬件上。Heptio提供的用于管理K8s配置的所有工具都是開源的,修復(fù)程序直接提供給所支持的集群。
VMware于2018年收購(gòu)了Heptio,但此次收購(gòu)并未影響Heptio的系列產(chǎn)品計(jì)劃。
Kontena Pharos
被稱為“用起來不錯(cuò)的K8s”,Kontena Pharos遵循與Red Hat的Linux產(chǎn)品大致相同的規(guī)程。底層是一個(gè)CNCF認(rèn)證的K8s發(fā)行版,可以在Apache 2許可下使用(每一Fedora或者CentOS許可)。資金富裕的企業(yè)(每一Red Hat企業(yè)版Linux許可)可以購(gòu)買專業(yè)級(jí)的功能、咨詢、支持服務(wù)以及某些不砍價(jià)的服務(wù),例如,遷移到云原生基礎(chǔ)設(shè)施。
核心Pharos發(fā)行版標(biāo)配了自動(dòng)安全更新和多個(gè)容器運(yùn)行時(shí)等基本功能。付費(fèi)產(chǎn)品增加了企業(yè)工具,例如,Kontena Lens儀表盤、Kontena存儲(chǔ)分布式存儲(chǔ)系統(tǒng)、備份、負(fù)載平衡,并且能夠在空氣散熱環(huán)境中部署集群。
專業(yè)版有30天的試用期,支持訂購(gòu)版起價(jià)為每月375歐元。開源版本沒有時(shí)間限制,也沒有許可成本。
Pivotal容器服務(wù)(PKS)
Pivotal以其在Cloud Foundry上的工作而聞名,它提供了企業(yè)級(jí)的K8s,即Pivotal容器服務(wù)(PKS)。PKS的靈感來自很多其他Pivotal項(xiàng)目。例如,它使用Kubo項(xiàng)目(也在Pivotal的Cloud Foundry中使用)來啟動(dòng)和管理K8s集群。
PKS的突出特點(diǎn)是與VMware虛擬化堆棧的緊密集成;事實(shí)上,PKS是一個(gè)聯(lián)合的VMware-Pivotal項(xiàng)目。在PKS上運(yùn)行的容器可以訪問通常僅對(duì)在vSphere上運(yùn)行的虛擬機(jī)可用的服務(wù),例如,VMware VSAN中的持久存儲(chǔ)。此外,可以通過VMware Cloud Foundation來管理PKS,這是用于管理公有云和私有云環(huán)境中的VMware基礎(chǔ)設(shè)施。
總之,任何投資了VMware,并且對(duì)K8s越來越感興趣的企業(yè),都希望研究PKS,以充分利用他們現(xiàn)有的VMware設(shè)置。
Rancher 2.0
Rancher實(shí)驗(yàn)室已經(jīng)將K8s集成到了它的容器管理平臺(tái)中,這個(gè)平臺(tái)簡(jiǎn)稱為2.0版的Rancher。Rancher 2.0比其他K8s發(fā)行版級(jí)別更高,位于Linux主機(jī)、Docker容器和K8s節(jié)點(diǎn)之上,無論位置或者基礎(chǔ)設(shè)施怎樣,都可以對(duì)它們進(jìn)行管理。它甚至可以在亞馬遜EKS、谷歌K8s引擎、Azure K8s服務(wù)和其他K8s即服務(wù)云上管理K8s集群。
Rancher也有自己的K8s發(fā)行版。Rancher想要去掉建立K8s集群和為特定環(huán)境定制K8s的過程中大量繁重的工作,要求這些定制工作不能妨礙K8s的順利更新——這是這類快速變化和不斷更新項(xiàng)目的關(guān)鍵考慮因素。
Rancher還提供一個(gè)名為K3s的最小K8s發(fā)行版。K3s針對(duì)低配置部署進(jìn)行了優(yōu)化,每個(gè)服務(wù)器實(shí)例只需要512 MB的RAM和200 MB的硬盤空間。它通過省略所有老的、alpha級(jí)別的和非必需的特性,以及很多不常用的插件(但是在需要時(shí),可以把這些插件重新添加回來),從而能夠布放到這種布局中。
Red Hat OpenShift
Red Hat OpenShift是Red Hat的PaaS產(chǎn)品,最初使用類似Heroku Buildpack的“黑盒”對(duì)應(yīng)用程序進(jìn)行打包,然后將其部署在稱為“變速箱”的容器中。后來有了Docker,OpenShift被重新設(shè)計(jì)以利用新的容器鏡像和運(yùn)行時(shí)標(biāo)準(zhǔn)。不可避免地,Red Hat也采用了K8s作為OpenShift中的編排技術(shù)。
開發(fā)OpenShift的目的是為了給PaaS中的所有組件提供抽象和自動(dòng)化功能。這種抽象和自動(dòng)化功能也擴(kuò)展到了K8s中,它仍然帶來了相當(dāng)多的管理負(fù)擔(dān),因此,OpenShift可以作為部署PaaS的更大任務(wù)的一部分,以減輕這一負(fù)擔(dān)。
如上所述,CoreOS Tectonic被并入Red Hat OpenShift,盡管技術(shù)合并預(yù)計(jì)要到2020年才能完成。
如果希望了解更詳細(xì)的信息,請(qǐng)參閱InfoWorld對(duì)Red Hat OpenShift 3的評(píng)論。
SUSE容器即服務(wù)平臺(tái)
SUSE以在歐洲廣泛流行的Linux發(fā)行版而聞名,它還提供了SUSE CaaS平臺(tái)。從概念上講,SUSE CaaS平臺(tái)讓人想起了CoreOS Tectonic,它結(jié)合了運(yùn)行容器的裸金屬“微型”操作系統(tǒng)、用于容器編排的K8s、內(nèi)置的圖像注冊(cè)表,以及集群配置工具。
SUSE CaaS平臺(tái)3于2018年發(fā)布,它添加了多主機(jī)功能,使集群能夠更靈活地應(yīng)對(duì)主節(jié)點(diǎn)崩潰,并提供了內(nèi)核調(diào)優(yōu)功能,以便對(duì)所包含的Linux內(nèi)核進(jìn)行定制調(diào)整。
SUSE CaaS平臺(tái)可以在公有云和本地裸金屬上運(yùn)行,但需要注意的是,“SUSE目前不支持任何與底層云基礎(chǔ)設(shè)施的集成。”這意味著SUSE CaaS平臺(tái)不是為完善亞馬遜EKS或者谷歌K8s引擎而設(shè)計(jì)的,而是為了規(guī)避它們,支持跨多個(gè)云和數(shù)據(jù)中心來運(yùn)行容器。
Gravity
Teleport SSH服務(wù)器的制造商Gravitational推出了Gravity,這是一種“產(chǎn)品增強(qiáng)型”的K8s發(fā)行版,運(yùn)行在本地或者遠(yuǎn)程集群上。Gravity被定位為一種私有SaaS平臺(tái)的解決方案,也可以用于在多個(gè)區(qū)域或者托管提供商那里運(yùn)行K8s即服務(wù)。
Gravity上的應(yīng)用程序必須做好準(zhǔn)備才能在K8s容器中運(yùn)行。它們還必須打包成“Bundles”,然后發(fā)布到K8s集群進(jìn)行分發(fā)。除了部署基于容器的應(yīng)用程序所需的所有其他準(zhǔn)備工作之外,Bundles還需要一些額外的工作,而Bundles清單是需要維護(hù)的唯一與Gravity相關(guān)的附加內(nèi)容。
Gravity還允許對(duì)整個(gè)K8s集群(包括其所有應(yīng)用程序和配置)進(jìn)行快照,并將快照部署到任何其他K8s環(huán)境中。
Serdar Yegulalp是InfoWorld的資深作家,專注于機(jī)器學(xué)習(xí)、容器化、Devops、Python生態(tài)系統(tǒng),并且經(jīng)常發(fā)表評(píng)論文章。
原文網(wǎng)址
https://www.infoworld.com/article/3265059/10-kubernetes-distributions-leading-the-container-revolution.html