主流 Kubernetes 發行版梳理,看完就會選了
Kubernetes 的開源性質及其受歡迎程度催生了容器管理平臺的許多不同發行版。
2014 年,Kubernetes 作為內部 Google orchestrator Borg 開源版本推出,目前已是最成功和發展最快的 IT 基礎架構專案之一。2018 年,Kubernetes 已廣泛應用於各種業務,從軟體開發商到航空公司。Kubernetes 得以迅速普及的原因之一就是其開源架構及由社群提供的大量手冊、文件和支援。
就像所有成功的開源專案一樣,Kubernetes 也存在很多發行版,開源版本固然好,但太過基礎和存在很多錯誤,因此開發者需要不同的發行版提供額外功能。雖然市面上也有很多雲供應商支援 Kubernetes,但本文側重梳理可在本地執行或作為雲託管選項的發行版,減少被單一供應商繫結的風險。
原版開源 Kubernetes
Kubernetes 由 Cloud Native Computing Foundation(雲原生計算資金會)和 Kubernetes 使用者組成的多樣化社群支援,也是第一個從 CNCF 畢業的專案。
開發者對原版 Kubernetes 最為熟悉,通過官網或者 Github 開源網站可輕鬆找到原版 Kubernetes 的功能列表和官方文件。需要注意的是,如果選擇該版本,你可以享受所有開源功能和社群支援,但原生開源版本往往存在一些問題或者無法第一時間獲得社群幫助。
許可和定價模型
開源且 100%免費,可以像所有開源產品一樣安裝、使用和更新。
安裝
設定 Kubernetes 叢集的方法有很多,從非常容易到中等難度。 開發者可使用 minikube 在本地安裝 Kubernetes 並進行實驗和測試,或使用 kubeadm 在雲中引導叢集。對於故障排除或最佳實踐示例,可以查閱各種資源或者在 GitHub 社群發問。
Kubernetes 很強大,但絕對不容易。如果沒有準備就緒或者經驗不足,處理問題時可能會導致停機,因此在將 Kubernetes 用於終端使用者服務之前,開發者需要花一些時間在沙箱模式下練習。
紅帽 OpenShift
在 Kubernetes 之前,OpenShift 作為一個單獨專案並使用完全不同的技術執行。後來,紅帽意識到 Kubernetes 的能力越來越強大,因此在第 3 版中明智地將其作為 OpenShift 的核心。
與原生開源 Kubernetes 相比的主要區別在於:
- 整合使用者管理
- 整合 Docker 登錄檔
- 整合 CI 管道
- 整合資源模板
- 使用類似但略有不同的概念,如路由器而不是 Ingresses,Projects 而不是 Namespaces 等。
OpenShift 由紅帽提供支援,根據 Stackalytics 的說法,紅帽是繼谷歌和社群之後 Kubernetes 專案的第三大貢獻者,因此可能是維持 Kubernetes 發行版最合法的公司之一。
許可和定價模型
OpenShift 有三種定價模式:
- OKD,OpenShift 免費釋出的 Kubernetes。
- OpenShift Enterprise,由紅帽託管和管理,也可由客戶端部署在本地,託管版本的起價為每年 48,000 美元,包括 3 個 master,3 個 etcd 和 4 個應用程式節點。
- OpenShiftOnline,線上提供的 PaaS 版本。每 2 Gb RAM 的成本約為每月 50 美元,與其他 Kubernetes 即服務提供商相比,這有點貴。
安裝
該發行版的安裝過程不是很複雜,但需要特定配置。安裝使用 Ansible,因此建議使用此配置管理工具。
OpenShift 顯然是一個企業級發行版,目標是穩定而不是功能,因此該發行版總是比原生開源版本的釋出速度慢一些。
Platform9 Managed Kubernetes
這是一個非常重要的商業發行版,可在任何環境中部署 Kubernetes,無論是公有云還是本地,Platform9 的工程師也可以遠端管理,該發行版基本每週六都會對 Managed Kubernetes 進行一次更新,也會與該公司開發的無服務期計算專案相整合,與幾乎所有程式語言相容。
許可和定價模型
可以免費試用,也有相關開源工具支援,但持續使用需要付費。
安裝
安裝過程比較容易,適合各種環境
Tectonic
Tectonic 是一種非常受歡迎的 Kubernetes 發行版,目前正在與紅帽整合。與開源 Kubernetes 相比,優勢功能如下:
- 易於設定
- 使用者友好的 Web UI
- 使用者管理
- 對供應商的支援
Tectonic 由 CoreOS 建立,CoreOS 是一家致力於發展容器技術公司,但已被紅帽收購,因此可能會看到 RedHat 在整合路線圖中宣佈 OpenShift 和 Tectonic 融合。
許可和定價模型
Tectonic 擁有商業許可模式,最多可免費提供 10 個節點,而對於更大的叢集,每 10 個節點的定價約為每月 1000 美元,其中包括支援。
安裝
可以通過安裝程式或 Terraform 安裝。但是,Tectonic 的未來方向尚不確定,很可能將完全消失並最終與 OpenShift 整合。因此,從長遠來看,Tectonic 可能不是最佳選擇。
Stackube
HyperHQ 提供用於執行容器的 Hyper.sh 雲服務,Stackube 是一款以 Kubernetes 為中心的 OpenStack 發行版。Stackube 的一大優勢是可根據所用容器執行時環境提供不同程度的多租戶機制,使用者可選擇 Docker 或者虛擬機器進行配置。
Kubernetes Distribution by Containerum
Containerum 有兩種不同但互補的產品,其中一個是 Kubernetes 發行版稱為 KDC;另一個是開源 Containerum 平臺,可作為 UI 安裝在 Kubernetes 之上,具有一些額外功能,比如使用者管理,指標監控,CI/CD 管道等。
許可和定價模型
KDC 和 Containerum 平臺都是 100%開源,因此可以自由部署解決方案。
安裝
設定相對容易,與 vanilla Kubernetes 安裝非常相似,開發者可以在具有 Helm 圖表的現有 Kubernetes 叢集之上安裝 Containerum Platform。
KDC + Containerum 平臺可能是最簡單的 Kubernetes 發行版,也符合已經擁有 Kubernetes 叢集但需要比開源 Kubernetes 叢集更多功能的使用者需求。
Rancher
Rancher 是一個包含 Kubernetes 的容器管理平臺,因此可以將其視為 Kubernetes 發行版。與開源 Kubernetes 相比,Rancher 的主要特點如下:
- 跨供應商叢集部署
- 使用者管理
- Web 使用者介面
- 整合 CI/CD 管道
Rancher Kubernetes 由成立於 2014 年的創業公司 Rancher Labs 提供支援,該公司的明星產品是 Rancher 容器平臺,但也建立 RancherOS,一個以容器為中心的 Linux 發行版。
許可和定價模型
Rancher 是 100%開源,該公司可提供諮詢和支援服務,但此部分報價不公開。
安裝
開發者可使用名為 RKE 的 Kubernetes 安裝工具。
Canonical Kubernetes
該發行版由 Linux 發行版 Ubuntu 背後的公司 Canonical 支援,相當於是一個可在主流公有云提供商和 OpenStack 等私有云解決方案上輕鬆部署的 vanilla Kubernetes,能夠輕鬆設定並管理跨供應商的 Kubernetes 叢集,使用者介面是官方 Kubernetes 儀表板。
許可和定價模型
Canonical Kubernetes 完全免費。但是,每個虛擬節點有幾個支援包,起價為每年 200 美元(至少應用 2,500 美元),支援包從每十個節點 14,600 起步。
安裝
開發者可使用 Canonical 開發的部署工具 Conjure-up 或 Juju 來完成安裝。
Canonical Kubernetes 並沒有給 Kubernetes 增添太多新功能,但是,它允許設定跨供應商和位置的 Kubernetes 叢集,並提供企業級支援。
結論
對於這些發行版,不同公司有不同的盤算,有的願意花時間培養內部人員的專業知識,從原生開源版本開始搭建;有些公司則更傾向於使用第三方服務。
如果將 Kubernetes 用於小型專案或僅僅是為了練習,更好的選擇是原生開源版本;對於大型專案和關鍵應用程式,建議使用第三方供應商提供的 Kubernetes 發行版,以便即時訪問支援和故障排除。
參考連結:https://dzone.com/articles/kubernetes-distributions-how-do-i-choose-one