天天看點

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發行版,以便可以獲得即時的技術支援以及故障排除。你覺得呢?

本文轉自DockOne-

Kubernetes不同發行版的比較

繼續閱讀