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://www.infoq.cn/article/Wt4PPS8h5_CO2gvSahhi