Kubernetes不同發(fā)行版的比較
【編者的話】基于Kubernetes的開源特性及其受歡迎程度,業(yè)界產(chǎn)生了許多容器管理平臺(tái)的不同版本。
Kubernetes是目前最為成功和發(fā)展最快的IT基礎(chǔ)架構(gòu)項(xiàng)目之一。Kubernetes在2014年作為內(nèi)部的Google orchestrator Borg的開源版本推出。在2017年各企業(yè)使用Kubernetes的情形有所增加,而到了2018年,從軟件開發(fā)商到航空公司,它已經(jīng)被廣泛應(yīng)用在各類業(yè)務(wù)上,Kubernetes之所以能夠迅速普及發(fā)展的原因之一就在于其開源的架構(gòu),以及忠實(shí)的社區(qū)中所提供的大量幫助手冊(cè),各類文檔以及技術(shù)支持等。
難怪Kubernetes就像任何成功的開源項(xiàng)目一樣,在市場(chǎng)上總可以找到幾個(gè)不同的發(fā)行版本(如同Linux一樣),用來(lái)提供各種額外功能并針對(duì)特定類別的用戶。
為什么我們會(huì)有這么多的發(fā)行版本?答案也很明顯:每家供應(yīng)商都希望保證它們的性能。而既然Kubernetes是開源的,提供自有的Kubernetes發(fā)行版的公司也就不能出售它,但是,它們卻提供對(duì)Kubernetes群集的支持和維護(hù)(也就是所說(shuō)的“托管Kubernetes”)。當(dāng)然,他們更愿意支持他們自己的產(chǎn)品,因此即使他們不對(duì)代碼進(jìn)行任何更改,他們也會(huì)去測(cè)試他們的發(fā)行版以了解他們的產(chǎn)品,并且關(guān)注在正式場(chǎng)景下的工作表現(xiàn)。
假如現(xiàn)在貴公司正計(jì)劃采用Kubernetes,同時(shí)并不急于設(shè)置和維護(hù)集群本身。該如何選擇供應(yīng)商?現(xiàn)在的供應(yīng)商第一梯隊(duì)有哪些公司?讓我們把目光轉(zhuǎn)向市場(chǎng)上存在的一些Kubernetes發(fā)行版,看看它們之間的不同,也同時(shí)和原版Kubernetes發(fā)行版來(lái)進(jìn)行對(duì)比。
"Vanilla Kubernetes"
它有什么特點(diǎn)?
如果我們從官方倉(cāng)庫(kù)安裝Kubernetes,我們會(huì)得到......Kubernetes!鑒于Kubernetes有著大量的功能,所以在這里列出Kubernetes的所有功能是沒(méi)有多大意義的。如果你不知道Kubernetes是什么,可以去參考下官方文檔。簡(jiǎn)而言之,如果你安裝了經(jīng)典版Kubernetes,所有的功能都是可以使用的。其實(shí)你是獲得了一款優(yōu)缺點(diǎn)并存的開源產(chǎn)品,諸如版本更新,自由定制,社區(qū)中能得到的難以置信的支持,以及你不得不面對(duì)的或者向同行尋求幫助的各類bug(這是開源軟件的常態(tài),不要責(zé)怪Kubernetes!)。
它背后的支持者是誰(shuí)?
Kubernetes是由CNCF和Kubernetes用戶組成的多樣化社區(qū)所共同支持的項(xiàng)目。如果你不知道CNCF是什么,請(qǐng)去仔細(xì)了解下——這是一個(gè)致力于云化技術(shù)、聲譽(yù)良好的組織。Kubernetes是第一個(gè)從CNCF畢業(yè)的項(xiàng)目,其第二個(gè)項(xiàng)目Prometheus也宣布將于2018年8月畢業(yè)。如果你聽說(shuō)過(guò)Helm,containerd,CoreDNS等工具(如果沒(méi)有,應(yīng)該去再了解下),你就應(yīng)該知道是CNCF支持著他們的發(fā)展。
它的商業(yè)許可和定價(jià)是怎樣的?
Kubernetes是款完全免費(fèi)的開源軟件,你可以像其他任何開源產(chǎn)品一樣,來(lái)安裝、使用、以及升級(jí)到新版本。
它易于安裝嗎?
從易到難,有很多種安裝Kubernetes集群的方法,你可以使用minikube在本地安裝Kubernetes進(jìn)行實(shí)驗(yàn)和測(cè)試,或者使用kubeadm在云中引導(dǎo)群集。對(duì)于故障排除或最佳實(shí)踐案例,你可以查閱各種資源,或者在官方GitHub倉(cāng)庫(kù)里創(chuàng)建提交問(wèn)題。
它的用途和目標(biāo)受眾是誰(shuí)?
Kubernetes開箱即用的特性對(duì)于那些已經(jīng)熟悉該技術(shù)或想要試驗(yàn)它的人來(lái)說(shuō)其實(shí)非常棒,但要知道Kubernetes雖然很強(qiáng)大,卻絕不容易操作。如果在沒(méi)有做好準(zhǔn)備,以及具備豐富的經(jīng)驗(yàn)的情況下,就投入生產(chǎn),在處理問(wèn)題時(shí)可能會(huì)導(dǎo)致嚴(yán)重的服務(wù)宕機(jī),因此在將Kubernetes用于最終正式服務(wù)之前,建議還是應(yīng)該多花一點(diǎn)時(shí)間去先學(xué)習(xí)下沙盒模式中的Kubernetes。
RedHat OpenShift
它有什么特點(diǎn)?
OpenShift在Kubernetes之前就已經(jīng)是一個(gè)獨(dú)立的項(xiàng)目了,并且采用了一種完全不同的技術(shù)路線。然而,RedHat也意識(shí)到Kubernetes越來(lái)越受到關(guān)注,所以他們?cè)贠penShift第3版中明智地將其作為了核心。
它與經(jīng)典Kubernetes的主要區(qū)別在于:
- 高級(jí)和集成的用戶管理
- 集成Docker倉(cāng)庫(kù)
- 集成CI流水線
- 集成資源模板
- 使用類似但有些許不同的術(shù)語(yǔ),如用路由器代替了Ingresses,Projects代替了Namespaces等等。
它背后的支持者是誰(shuí)?
OpenShift是由RedHat提供支持,眾所周知,RedHat是一個(gè)開源軟件社區(qū)。根據(jù)Stackalytics的數(shù)據(jù),RedHat是僅次于Google的Kubernetes項(xiàng)目的第三大社區(qū)貢獻(xiàn)者,因此他們很有可能也是發(fā)行Kubernetes正式版本的的合法公司之一。
它的商業(yè)許可和定價(jià)是怎樣的?
OpenShift有三種定價(jià)模式:
- OKD模式,OpenShift免費(fèi)發(fā)行Kubernetes。
- OpenShift 企業(yè)模式,可以由RedHat托管和管理,也可用客戶端部署在本地。托管版本的起價(jià)為48,000美元/年,包括了3臺(tái)主服務(wù)器,3臺(tái)etcd服務(wù)器和4臺(tái)應(yīng)用程序節(jié)點(diǎn)。
- OpenShift 在線模式,是在線提供的PaaS版本。每2 Gb內(nèi)存規(guī)格價(jià)格約為每月50美元,與其他Kubernetes-as-a-Service提供商相比,還是有點(diǎn)貴的。
它易于安裝嗎?
它并不是很復(fù)雜,但是需要一些特定的配置,因此還是建議你使用Ansible這個(gè)配置管理工具用于安裝配置。
它的用途和目標(biāo)受眾是誰(shuí)?
OpenShift顯然是一個(gè)企業(yè)級(jí)的發(fā)行版本,注重穩(wěn)定性大于功能性。這就是為什么它發(fā)布的版本總是落后于Kubernetes一步。所以目前,雖然Kubernetes已經(jīng)發(fā)布了1.11版本,但OpenShift才發(fā)布了基于Kubernetes 1.10的3.10版本。
所以,OpenShift是面向那些更看重軟件運(yùn)行穩(wěn)定性而不是功能性的企業(yè)客戶。
Tectonic
它有什么特點(diǎn)?
Tectonic是一款非常受歡迎的Kubernetes發(fā)行版本,它目前正在與RedHat一起做集成。與原版Kubernetes相比,其特性如下:
- 易于安裝
- 用戶友好的Web界面
- 用戶管理
- 對(duì)運(yùn)營(yíng)者的原生支持
它背后的支持者是誰(shuí)?
Tectonic是由CoreOS所創(chuàng)建的,這是一家致力于容器技術(shù)的公司。他們的產(chǎn)品組合包括了許多有價(jià)值和受歡迎的產(chǎn)品,譬如CoreOS Linux,Quay Docke倉(cāng)庫(kù),Etcd K-V存儲(chǔ)以及Flannel容器網(wǎng)絡(luò)接口等。該公司已經(jīng)被RedHat收購(gòu),因此我們可能會(huì)看到RedHat在未來(lái)幾個(gè)月的集成演進(jìn)路線圖中宣布OpenShift和Tectonic的融合。
它的商業(yè)許可和定價(jià)是怎樣的?
Tectonic提供商業(yè)許可,最多可免費(fèi)使用10個(gè)節(jié)點(diǎn),而對(duì)于更大的集群,每10個(gè)節(jié)點(diǎn)(含支持服務(wù))的定價(jià)約為1,000美元/月。
它易于安裝嗎?
是的,很容易,可以通過(guò)安裝程序或Terraform來(lái)安裝它。
它的用途和目標(biāo)受眾是誰(shuí)?
Tectonic可以用于企業(yè)客戶。然而,它未來(lái)發(fā)展方向卻是不確定的。很可能該版本將完全退出舞臺(tái)并將與OpenShift集成。因此如果你計(jì)劃部署Kubernetes的話,從長(zhǎng)遠(yuǎn)來(lái)看,Tectonic并不是一個(gè)最佳選擇。
Rancher
它有什么特點(diǎn)?
Rancher是一個(gè)包含了Kubernetes的容器管理平臺(tái),所以我們也可以將其視為Kubernetes的一個(gè)發(fā)行版。它在原版Kubernetes中加入了一些新特性,主要是:
- 跨程序群集部署
- 用戶管理
- Web界面
- 集成的CI / CD流水線
它背后的支持者是誰(shuí)?
Rancher Kubernetes是由成立于2014年的Rancher Labs公司所支撐的,他們的拳頭產(chǎn)品就是Rancher容器管理平臺(tái),他們同時(shí)也開發(fā)了RancherOS,一個(gè)以容器為中心的Linux發(fā)行版本。
它的商業(yè)許可和定價(jià)是怎樣的?
Rancher是百分之百的開源軟件,他們的商業(yè)模式是提供咨詢和支持服務(wù),但是其定價(jià)卻是不公開的。
它易于安裝嗎?
非常容易,并且有著很好的文檔支持,可以使用它自己的名為RKE的Kubernetes安裝工具。
它的用途和目標(biāo)受眾是誰(shuí)?
很難說(shuō)Rancher的目標(biāo)客戶是誰(shuí),因?yàn)樗麄冏约阂矊?duì)此并不是很清楚。從功能特性上來(lái)看,這個(gè)版本其實(shí)是適用于任何類型公司的。
Canonical Kubernetes
它有什么特點(diǎn)?
這個(gè)發(fā)行版本可以算是一個(gè)能在主要公有云供應(yīng)商以及類似OpenStack這樣的私有云解決方案上輕松部署的vanilla Kubernetes,能夠輕松設(shè)置和管理跨供應(yīng)商和跨地域的Kubernetes集群。它的用戶界面其實(shí)就是官方的Kubernetes儀表板。
它背后的支持者是誰(shuí)?
該版本是由廣受歡迎的Linux發(fā)行商Ubuntu背后的公司Canonical所支持。
它的商業(yè)許可和定價(jià)是怎樣的?
Canonical Kubernetes是完全免費(fèi)的。但是,每個(gè)虛擬節(jié)點(diǎn)也可以選用一些服務(wù)支持包,起價(jià)是每年200美元(至少需要2500美元),維護(hù)服務(wù)包是從每十個(gè)節(jié)點(diǎn)14,600美元起售。
它易于安裝嗎?
可以使用由Canonical開發(fā)的部署工具Conjure-up或Juju來(lái)完成安裝。
它的用途和目標(biāo)受眾是誰(shuí)?
Canonical Kubernetes并沒(méi)有在Kubernetes上增加太多的功能,它和原版Kubernetes具有一樣的功能。并且,它允許跨供應(yīng)商和跨地域來(lái)設(shè)置Kubernetes集群,并且提供了企業(yè)級(jí)的支持。我們推薦那些已經(jīng)或計(jì)劃與Canonical有商業(yè)合作的公司來(lái)使用它。
Kubernetes Distribution by Containerum
它有什么特點(diǎn)?
Containerum有兩款不同而互補(bǔ)的產(chǎn)品:
- 針對(duì)Kubernetes的產(chǎn)品稱為KDC——Kubernetes Distribution by Containerum。KDC也是Kubernetes的原版版本,由Containerum團(tuán)隊(duì)來(lái)進(jìn)行測(cè)試和支持。
- 開源Containerum平臺(tái),能以界面的方式安裝在Kubernetes上,具有其他的額外功能,譬如用戶管理,用量監(jiān)控,CI / CD流水線等等。
它背后的支持者是誰(shuí)?
Containerum由拉脫維亞一家致力于容器技術(shù)的創(chuàng)業(yè)公司Exon LV提供支持。
它的商業(yè)許可和定價(jià)是怎樣的?
KDC和Containerum平臺(tái)都是完全開源的,因此你可以自由部署它們。他們公司的商業(yè)收入有兩個(gè)來(lái)源:
- DevOps和基礎(chǔ)設(shè)施咨詢服務(wù)
- 通過(guò)Containerum支持Kubernetes發(fā)行版。安裝和支持服務(wù)起價(jià)為每10個(gè)節(jié)點(diǎn)/年550美元。
與其他發(fā)行版相比,這個(gè)價(jià)格是非常有競(jìng)爭(zhēng)力的。
它易于安裝嗎?
它的設(shè)置相對(duì)簡(jiǎn)單,跟原版Kubernetes安裝很相似。你還可以在已有了Helm圖表的Kubernetes集群之上安裝Containerum平臺(tái)。
它的用途和目標(biāo)受眾是誰(shuí)?
KDC + Containerum平臺(tái)可能是最簡(jiǎn)單的Kubernetes發(fā)行版。它也可以滿足那些已經(jīng)擁有Kubernetes集群但又比原版Kubernetes集群需要更多功能的用戶的需求。
總結(jié)
我們這里給出的版本列表其實(shí)也并沒(méi)有那么詳盡——我試圖收集一些著名的參與者以及還有一些并不為人所知的參與者。當(dāng)然,最終的選擇還是得取決于你自己現(xiàn)狀考慮——一些公司愿意花費(fèi)時(shí)間來(lái)提升培養(yǎng)內(nèi)部能力,而有些公司則更愿意使用第三方服務(wù)。如果你只是在小型項(xiàng)目上使用Kubernetes或者僅僅是出于興趣(當(dāng)然,Kubernetes是很有趣的),而且不會(huì)上來(lái)就啟動(dòng)數(shù)百個(gè)微服務(wù)的話,最好還是選擇使用標(biāo)準(zhǔn)版本。但是,如果對(duì)于大型項(xiàng)目和關(guān)鍵應(yīng)用,建議還是使用第三方供應(yīng)商提供的Kubernetes發(fā)行版,以便可以獲得即時(shí)的技術(shù)支持以及故障排除。你覺(jué)得呢?