天天看點

開源雲原生平台 KubeSphere 與 Rainbond 對比開源雲原生平台 KubeSphere 與 Rainbond 對比

開源雲原生平台 KubeSphere 與 Rainbond 對比

參考網址:

https://mp.weixin.qq.com/s/szHv9lmxkOyIbTFm50Ptlg

最近因為工作需要,需要找一個功能完善的雲原生應用平台,經過自己篩選和朋友推薦,剩下 KubeSphere 和 Rainbond,這兩個産品都是基于 Kubernetes 之上建構的雲原生應用平台,功能都非常強大,但産品定位和功能側重不同,本文将介紹我在選型過程中從各次元對比兩款産品的過程記錄。

産品定位對比

KubeSphere 是在 Kubernetes 之上建構的面向雲原生應用的分布式作業系統,完全開源,支援多雲與多叢集管理,提供全棧的 IT 自動化運維能力,簡化企業的 DevOps 工作流。作為全棧的多租戶容器平台,KubeSphere 提供了運維友好的向導式操作界面,幫助企業快速建構一個強大和功能豐富的容器雲平台。KubeSphere 為使用者提供建構企業級 Kubernetes 環境所需的多項功能,例如多雲與多叢集管理、Kubernetes 資源管理、DevOps、應用生命周期管理、微服務治理(服務網格)、日志查詢與收集、服務與網絡、多租戶管理、監控告警、事件與審計查詢、存儲管理、通路權限控制、GPU 支援、網絡政策、鏡像倉庫管理以及安全管理等。

Rainbond 是一個雲原生應用管理平台,使用簡單,不需要懂容器、Kubernetes和底層複雜技術,支援管理多個Kubernetes叢集,和管理企業應用全生命周期。主要功能包括應用開發環境、應用市場、微服務架構、應用傳遞、應用運維、應用級多雲管理等。Rainbond 遵循 以應用為中心的設計理念,統一封裝容器、Kubernetes和底層基礎設施相關技術,讓使用者專注于業務本身, 避免在業務以外技術上花費大量學習和管理精力。

KubeSphere Rainbond
Slogan 面向雲原生應用的混合雲平台 雲原生多雲應用管理平台
抽象 容器和K8s概念和抽象為主,應用級抽象為輔 應用級抽象
定位 面向懂K8s相關技術的運維和開發 面向所有運維和開發,平台管理需要懂K8s

由于産品抽象不同,表現出來的概念和流程也有很大差異,KubeSphere主要是Kubernetes相關概念和抽象,使用和管理都需要懂Kubernetes相關體系知識,懂Kubernetes的人能快速上手,Rainbond應用級抽象,使用門檻很低,面向不懂Kubernetes的普通開發人員,平台管理跟KubeSphere一樣都需要懂Kubernetes。

開源社群活躍度對比

KubeSphere Rainbond
社群活躍度 論壇、微信群都活躍 微信 釘釘活躍
Stars 11003 3451
文檔成熟度 很全面 很全面
版本疊代 近一年疊代了4個版本 近一年疊代了8個版本
開源 100% 開源 100% 開源

KubeSphere 社群更加活躍些,畢竟是萬星開源項目,使用者遍布國内外。Rainbond 社群使用者基本都是國内使用者,Star上差了些不過Github、社群群也蠻活躍的。

安裝體驗對比

KubeSphere

支援通過一條指令在 Linux 上快速安裝 KubeSphere。

./kk create cluster --with-kubernetes v1.22.10 --with-kubesphere v3.3.0
           

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-IXO0sOjZ-1677903629266)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

Rainbond

支援通過一條指令在 Mac、Win、Linux 上快速安裝 Rainbond。

docker run --privileged -d -p 7070:7070 -p 80:80 -p 6060:6060 rainbond/rainbond:v5.8.1-dind-allinone
           

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-hEM0Kd8a-1677903629267)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

KubeSphere Rainbond
Docker Desktop and ARM 不支援 支援
Linux 支援 支援
Kubernetes 支援 支援
公有雲、托管Kubernetes 支援 支援
安裝後元件數量 啟動所有可拔插元件後 Pod 大概 55 個左右 大概 15 個 Pod

KubeSphere和Rainbond安裝都很簡單。KubeSphere 自研的 KubeKey 安裝工具,在服務上安裝 K8s 和 KubeSphere 很友善。KubeSphere 的可拔插元件這個設計還蠻好的,Allinone安裝之後有 5 個 Pod 左右,能滿足基本運作需求,需要其他功能就通過可拔插開啟,開啟所有元件後 Pod 大概 60 個左右。Rainbond 能支援在 Mac M1 Docker Desktop 上安裝,這個安裝體驗還蠻好的可以在本地開發,Rainbond 啟動後 Pod 大概15個左右,記憶體占用1G 左右。

應用部署功能對比

KubeSphere

KubeSphere對接git倉庫部署源碼,支援 Source-to-Image (S2I) 标準工作流将源碼打包成鏡像,并部署在 Kubernetes 叢集中。支援 Java、Python、Node,其他語言可通過自定義 S2I 實作源碼建構。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-g7DjPwGK-1677903629267)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

KubeSphere采用 Binary-to-Image (B2I) 标準工作流将二進制打包成鏡像,并部署在 Kubernetes 叢集中。支援通過 Jar、War、二進制

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-OkTqLKRb-1677903629268)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

KubeSphere 支援自定義持續建構的流水線[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-yvOg5pdW-1677903629268)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

Rainbond

Rainbond支援對接和整合 Gitlab、Github、Gitee、SVN,實作統一入口[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-syzSHSU6-1677903629268)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

Rainbond 的建構支援自動識别源代碼類型,支援自動識别 Java Maven、Java Gradle、Java Jar、Java War、Python、PHP、.NetCore、Golang、NodeJS、Static HTML。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-hwlgz2qE-1677903629268)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

每種識别的開發語言支援設定環境相關資訊,并自動建構成容器鏡像。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-J0zXN43F-1677903629269)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

KubeSphere Rainbond
源碼部署 支援 Java、Python、Node 支援自動識别 Java Maven、Java Gradle、Java Jar、Java War、Python、PHP、.NetCore、Golang、NodeJS、Static HTML
二進制部署 Jar、War Jar、War
容器鏡像 支援容器鏡像部署 支援容器鏡像、docker run、docker compose部署
Kubernetes 應用 Yaml、Helm Yaml、Helm
持續傳遞 支援GitOps和自定義流水線步驟 支援GitOps

KubeSphere 相容Kubernetes體系,應用部署使用S2I和B2I,KubeSphere自定義流水線功能非常強大,配置靈活。Rainbond 應用部署不需要懂容器和Kubernetes,支援常見的源代碼,并自動識别和建構,使用非常簡單。

微服務架構功能對比

KubeSphere

KubeSphere的微服務架構基于 Istio 實作,支援微服務的流量可視化管理。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-onhdDVKC-1677903629269)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

基于Jaeger的調用鍊分析[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-afqZ2Cpk-1677903629269)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

Rainbond

Rainbond的微服務架構拓撲和服務編排,通過圖形化的編排,添加元件之間的依賴關系,添加後也會注入服務之間的連接配接資訊等。拓撲圖可以展示服務之間的關系,用顔色區分服務的狀态等。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-763kt9eB-1677903629269)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

微服務實時性能分析[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-SP7sGJz0-1677903629270)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

KubeSphere Rainbond
服務網格支援 Istio 内置、Istio、Linkerd
服務拓撲圖 流量拓撲圖 微服務依賴關系和服務狀态展示
服務治理 熔斷、限流 插件實作熔斷斷路器和限流
微服務可觀測性 調用鍊分析 通過插件擴充非常多可觀測性:性能分析、pinpoint、skywalking、Jaeger等
微服務編排 代碼編排 “拖拉拽”的形式編排微服務依賴關系

KubeSphere 完全依賴 Istio 實作微服務架構,對Istio的功能支援非常完整,KubeSphere彌補了Istio沒有圖形化的控制台的不足,簡化了 Istio 的上手難度,服務之間的拓撲圖是根據流量走向自動生成的,可以直覺的看到服務間流量。

Rainbond 的服務網格、服務治理、可觀測性都是通過插件體系支援的,傳統應用開啟服務網格插件,馬上就能支援微服務架構,服務治理和可觀測性也隻需要開啟相應插件,Rainbond内置了很多插件,有需要還可以自行擴充,可以将自己趁手的工具添加進來,另外,圖形化手動編排服務是個特色,不用改代碼就可以動态調整依賴關系。

應用市場功能對比

KubeSphere

内置應用商店有 30 個應用可直接安裝。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-3HpBGe6S-1677903629270)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

基于 Helm Chart 建立應用模闆。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-XWjC8xVT-1677903629270)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

釋出 Helm Chart 應用模闆。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-wqrujuPI-1677903629270)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

Rainbond

内置應用商店有 90+ 應用可直接安裝。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-RDgv34Jy-1677903629271)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

支援使用者将已經部署好的應用一鍵釋出至應用市場,無需編寫複雜的YAML。可以一鍵釋出應用模型内所有中繼資料,例如依賴關系、配置檔案、存儲資訊等。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-U8v4lZ4E-1677903629271)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

支援應用離線導出導入,支援導出 Rainbond App 應用包、Docker Compose 應用包、非容器環境應用包。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-Vk5yBkzB-1677903629271)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

支援基于 Rainbond 應用市場一鍵安裝和一鍵更新,更新會包含應用模型内所有中繼資料,包括依賴關系等。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-tsbItJg7-1677903629271)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-8zde0V0x-1677903629271)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

KubeSphere Rainbond
應用模闆 Helm Rainbond 應用模版、Helm
應用釋出 上傳 Helm Chart 一鍵釋出到應用市場
應用安裝 一鍵安裝 一鍵安裝
應用更新 整體更新 部分更新或整體更新
離線導入導出 不支援 離線導出多種格式包
内置應用 30 可用應用 90+ 可用應用

在應用市場這塊Rainbond的功能比KubeSphere強大很多,易用性也好很多。KubeSphere 在應用市場這塊是基于标準的 Helm 實作的,在應用釋出、安裝、更新這套流程裡是按照标準的 Helm 應用規範實作,制作 Helm Chart 門檻比較高,功能也受限于Helm。Rainbond 的應用市場 定義了自己的應用模型規範,也支援Helm Chart轉成Rainbond的應用模型,應用釋出支援一鍵釋出由幾十個服務組成的應用,無需編寫複雜的YAML,離線導出是在企業軟體傳遞場景非常實用的功能。

Kubenetes 多叢集管理功能對比

KubeSphere

KubeSphere支援對接多個 K8s 叢集,支援各種雲廠商托管 K8s 叢集以及私有雲、混合雲等。借助 KubeSphere的圖形化 Web 控制台,使用者可以管理底層的基礎架構,例如添加或删除叢集。可以使用相同的方式管理部署在任何基礎架構上的異構叢集。支援跨叢集應用分發,資源整合等。支援通過圖形化界面管理節點,監控叢集狀态、應用資源監控、叢集告警和通知等。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-51LxmeTl-1677903629271)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

叢集監控

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-7M2d3Xga-1677903629272)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

Rainbond

支援對接多個 K8s 叢集,支援各種雲廠商托管 K8s 叢集以及私有雲、混合雲等。支援使用者通過控制台添加或删除叢集,支援跨叢集應用分發。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-HII6trX9-1677903629272)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

通過grafana擴充的叢集和節點監控

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-xvLIj3vV-1677903629272)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

KubeSphere Rainbond
多叢集管理 支援對接多個 K8s 叢集 支援對接多個 K8s 叢集
叢集管理 存儲管理、節點管理 指令行管理
叢集監控和可視化 豐富的監控 通過grafana擴充的監控
多租戶 從平台角色、企業空間角色、項目角色三個次元定義多租戶 支援企業空間、項目進行資源限額,支援多租戶的邏輯隔離、網絡隔離 從企業角色、團隊角色兩個次元定義多租戶 支援對團隊的資源限額,支援多租戶的邏輯隔離

KubeSphere 在多叢集管理這塊比Rainbond體驗好,有豐富的監控和可觀測性,管理存儲和節點在控制台全部完成,Rainbond在叢集管理這塊需要在指令行下管理,監控功能也弱一些。

應用運維功能對比

基本管理

KubeSphere

支援對工作負載、容器組級别的管理,支援工作負載的YAML編輯、版本復原、删除、重新建立等。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-pHNreLOq-1677903629272)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

支援對容器級别的日志查詢過濾,支援全局的日志查詢過濾。

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-SJ8GnOTH-1677903629272)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

KubeSphere 采用 Kubernetes 原生模式進行應用通路,可通過 NodePort、LoadBalancer、Ingress實作外部通路。支援擴充第三方負載均衡控制器以及 Ingress 控制器

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-4PGZ9B2z-1677903629272)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-o4k0lBiH-1677903629273)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

Rainbond

支援對應用、元件級别的管理,支援應用批量啟動、重新開機、更新、關閉、删除以及元件的操作,支援應用群組件級别的環境變量、版本復原等。[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-XrOzvK5P-1677903629273)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

元件日志實時檢視和篩選[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-ZsJOEAwk-1677903629273)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

Rainbond采用統一的應用網關,支援配置HTTP路由規則和HTTPS證書

[外鍊圖檔轉存失敗,源站可能有防盜鍊機制,建議将圖檔儲存下來直接上傳(img-Cfzt65JC-1677903629273)(data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)]’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

由 Rainbond Gateway 統一封裝通路,支援http、tcp、udp、grpc通路元件。

KubeSphere Rainbond
基本管理 支援對工作負載級别的管理 支援對應用、元件級别的管理
日志 支援容器組日志查詢過濾和全局日志查詢過濾 支援元件日志查詢過濾
監控 支援工作負載級别的告警以及自定義監控圖 支援元件級别的監控以及圖表,告警可擴充
伸縮 支援手工和自動 支援手工和自動
網關 支援 NodePort、LoadBalancer 和 Nginx Ingress 由 Rainbond Gateway 統一封裝通路,支援http、tcp、udp、grpc

對于基本管理來說 KubeSphere 是原生 K8s 的一些管理,比如删除Pod、編輯YAML、配置環境、自定伸縮等,同樣 Rainbond 展現的是應用級概念,比如:在K8s裡沒有關閉的概念,而在Rainbond裡應用不用了直接關閉,想用了再啟動,Rainbond做了很多應用級的概念轉化,對于不動K8s的開發人員更加容易接受。

KubeSphere 在網關這塊同樣也是遵循了 K8s 原生的模式,通過 NodePort、LoadBalancer、Ingress實作外部通路,并通過圖形化操作簡化了 YAML 的操作,優點是可以擴充更多第三方 Ingress 控制器,例如 Traefik 等。Rainbond 網關則是通過 Rainbond Gateway 統一封裝實作外部通路,簡化了使用者的操作,一鍵開啟外部通路,同時也能配置 HTTP 的路由規則等,使用的體驗非常好。

總結

總體來說,KubeSphere 和 Rainbond 都很成熟,也都有大量開源使用使用者,隻是定位不同,是以适用場景也會不同。

KubeSphere 在相容 Kubernetes 生态方面做的非常好,包裝和整合了很多雲原生的工具,并擴充了對 Kubernetes 和開源工具的管理能力,對于想要管理 Kubernetes 叢集的系統管理者是個好的工具,熟悉 Kubernetes 的工程師也可以自行擴充 KubeSphere 的能力。但對開發人員來開發和管理應用來說,門檻比較高,需要學習和了解的概念非常多。

Rainbond 屏蔽了底層複雜的技術,基于應用級抽象,在 Rainbond 的産品閉環裡,體驗非常好。這适用普通的開發人員開發和管理應用,對于不熟悉 Kubernetes 使用者快速起步也是一個不錯的選擇,在企業軟體傳遞上 Rainbond 非常擅長。但在對 Kubernetes 的系統管理上功能有欠缺。

由于個人知識和經驗有限,如有了解不對的地方,還請見諒。

擴充 KubeSphere 的能力。但對開發人員來開發和管理應用來說,門檻比較高,需要學習和了解的概念非常多。

Rainbond 屏蔽了底層複雜的技術,基于應用級抽象,在 Rainbond 的産品閉環裡,體驗非常好。這适用普通的開發人員開發和管理應用,對于不熟悉 Kubernetes 使用者快速起步也是一個不錯的選擇,在企業軟體傳遞上 Rainbond 非常擅長。但在對 Kubernetes 的系統管理上功能有欠缺。

由于個人知識和經驗有限,如有了解不對的地方,還請見諒。