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