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