最近因為工作需要,需要找一個功能完善的云原生應用平臺,經過自己篩選和朋友推薦,剩下 KubeSphere 和 Rainbond,這兩個產品都是基于 Kubernetes 之上構建的云原生應用平臺,功能都非常強大,但產品定位和功能側重不同,本文將介紹我在選型過程中從各維度對比兩款產品的過程記錄。
產品定位對比
KubeSphere是在 Kubernetes 之上構建的面向云原生應用的分布式操作系統,完全開源,支持多云與多集群管理,提供全棧的 IT 自動化運維能力,簡化企業的 DevOps 工作流。作為全棧的多租戶容器平臺,KubeSphere 提供了運維友好的向導式操作界面,幫助企業快速構建一個強大和功能豐富的容器云平臺。KubeSphere 為用戶提供構建企業級 Kubernetes 環境所需的多項功能,例如多云與多集群管理、Kubernetes 資源管理、DevOps、應用生命周期管理、微服務治理(服務網格)、日志查詢與收集、服務與網絡、多租戶管理、監控告警、事件與審計查詢、存儲管理、訪問權限控制、GPU 支持、網絡策略、鏡像倉庫管理以及安全管理等。
Rainbond是一個云原生應用管理平臺,使用簡單,不需要懂容器、Kubernetes和底層復雜技術,支持管理多個Kubernetes集群,和管理企業應用全生命周期。主要功能包括應用開發環境、應用市場、微服務架構、應用交付、應用運維、應用級多云管理等。Rainbond 遵循 以應用為中心的設計理念,統一封裝容器、Kubernetes和底層基礎設施相關技術,讓使用者專注于業務本身, 避免在業務以外技術上花費大量學習和管理精力。
Slogan | 面向云原生應用的混合云平臺 | 云原生多云應用管理平臺 |
抽象 | 容器和K8s概念和抽象為主,應用級抽象為輔 | 應用級抽象 |
定位 | 面向懂K8s相關技術的運維和開發 | 面向所有運維和開發,平臺管理需要懂K8s |
KubeSphere | Rainbond |
---|
由于產品抽象不同,表現出來的概念和流程也有很大差異,KubeSphere主要是Kubernetes相關概念和抽象,使用和管理都需要懂Kubernetes相關體系知識,懂Kubernetes的人能快速上手,Rainbond應用級抽象,使用門檻很低,面向不懂Kubernetes的普通開發人員,平臺管理跟KubeSphere一樣都需要懂Kubernetes。
開源社區活躍度對比
社區活躍度 | 論壇、微信群都活躍 | 微信 釘釘活躍 |
Stars | 11003 | 3451 |
文檔成熟度 | 很全面 | 很全面 |
版本迭代 | 近一年迭代了4個版本 | 近一年迭代了8個版本 |
開源 | 100% 開源 | 100% 開源 |
KubeSphere | Rainbond |
---|
KubeSphere 社區更加活躍些,畢竟是萬星開源項目,用戶遍布國內外。Rainbond 社區用戶基本都是國內用戶,Star上差了些不過Github、社區群也蠻活躍的。
安裝體驗對比
KubeSphere
支持通過一條命令在 Linux 上快速安裝 KubeSphere。
./kkcreatecluster--with-kubernetesv1.22.10--with-kubespherev3.3.0
Rainbond
支持通過一條命令在 Mac、Win、Linux 上快速安裝 Rainbond。
dockerrun--privileged-d-p7070:7070-p80:80-p6060:6060rainbond/rainbond:v5.8.1-dind-allinone
Docker Desktop and ARM | 不支持 | 支持 |
Linux | 支持 | 支持 |
Kubernetes | 支持 | 支持 |
公有云、托管Kubernetes | 支持 | 支持 |
安裝后組件數量 | 啟動所有可拔插組件后 Pod 大概 55 個左右 | 大概 15 個 Pod |
KubeSphere | Rainbond |
---|
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 實現源碼構建。
KubeSphere采用 Binary-to-Image (B2I) 標準工作流將二進制打包成鏡像,并部署在 Kubernetes 集群中。支持通過 Jar、War、二進制
KubeSphere 支持自定義持續構建的流水線
Rainbond
Rainbond支持對接和整合 Gitlab、Github、Gitee、SVN,實現統一入口
Rainbond 的構建支持自動識別源代碼類型,支持自動識別 Java Maven、Java Gradle、Java Jar、Java War、Python、PHP、.NetCore、Golang、NodeJS、Static HTML。
每種識別的開發語言支持設置環境相關信息,并自動構建成容器鏡像。
源碼部署 | 支持 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 | Rainbond |
---|
KubeSphere 兼容Kubernetes體系,應用部署使用S2I和B2I,KubeSphere自定義流水線功能非常強大,配置靈活。Rainbond 應用部署不需要懂容器和Kubernetes,支持常見的源代碼,并自動識別和構建,使用非常簡單。
微服務架構功能對比
KubeSphere
KubeSphere的微服務架構基于 Istio 實現,支持微服務的流量可視化管理。
基于Jaeger的調用鏈分析
Rainbond
Rainbond的微服務架構拓撲和服務編排,通過圖形化的編排,添加組件之間的依賴關系,添加后也會注入服務之間的連接信息等。拓撲圖可以展示服務之間的關系,用顏色區分服務的狀態等。
微服務實時性能分析
服務網格支持 | Istio | 內置、Istio、Linkerd |
服務拓撲圖 | 流量拓撲圖 | 微服務依賴關系和服務狀態展示 |
服務治理 | 熔斷、限流 | 插件實現熔斷斷路器和限流 |
微服務可觀測性 | 調用鏈分析 | 通過插件擴展非常多可觀測性:性能分析、pinpoint、skywalking、Jaeger等 |
微服務編排 | 代碼編排 | “拖拉拽”的形式編排微服務依賴關系 |
KubeSphere | Rainbond |
---|
KubeSphere 完全依賴 Istio 實現微服務架構,對Istio的功能支持非常完整,KubeSphere彌補了Istio沒有圖形化的控制面板的不足,簡化了 Istio 的上手難度,服務之間的拓撲圖是根據流量走向自動生成的,可以直觀的看到服務間流量。
Rainbond 的服務網格、服務治理、可觀測性都是通過插件體系支持的,傳統應用開啟服務網格插件,馬上就能支持微服務架構,服務治理和可觀測性也只需要開啟相應插件,Rainbond內置了很多插件,有需要還可以自行擴展,可以將自己趁手的工具添加進來,另外,圖形化手動編排服務是個特色,不用改代碼就可以動態調整依賴關系。
應用市場功能對比
KubeSphere
內置應用商店有 30 個應用可直接安裝。
基于 Helm Chart 創建應用模板。
發布 Helm Chart 應用模板。
Rainbond
內置應用商店有 90+ 應用可直接安裝。
支持用戶將已經部署好的應用一鍵發布至應用市場,無需編寫復雜的YAML。可以一鍵發布應用模型內所有元數據,例如依賴關系、配置文件、存儲信息等。
支持應用離線導出導入,支持導出 Rainbond App 應用包、Docker Compose 應用包、非容器環境應用包。
支持基于 Rainbond 應用市場一鍵安裝和一鍵升級,升級會包含應用模型內所有元數據,包括依賴關系等。
應用模板 | Helm | Rainbond 應用模版、Helm |
應用發布 | 上傳 Helm Chart | 一鍵發布到應用市場 |
應用安裝 | 一鍵安裝 | 一鍵安裝 |
應用升級 | 整體升級 | 部分升級或整體升級 |
離線導入導出 | 不支持 | 離線導出多種格式包 |
內置應用 | 30 可用應用 | 90+ 可用應用 |
KubeSphere | Rainbond |
---|
在應用市場這塊Rainbond的功能比KubeSphere強大很多,易用性也好很多。KubeSphere 在應用市場這塊是基于標準的 Helm 實現的,在應用發布、安裝、升級這套流程里是按照標準的 Helm 應用規范實現,制作 Helm Chart 門檻比較高,功能也受限于Helm。Rainbond 的應用市場 定義了自己的應用模型規范,也支持Helm Chart轉成Rainbond的應用模型,應用發布支持一鍵發布由幾十個服務組成的應用,無需編寫復雜的YAML,離線導出是在企業軟件交付場景非常實用的功能。
Kubenetes 多集群管理功能對比
KubeSphere
KubeSphere支持對接多個 K8s 集群,支持各種云廠商托管 K8s 集群以及私有云、混合云等。借助 KubeSphere的圖形化 Web 控制臺,用戶可以管理底層的基礎架構,例如添加或刪除集群。可以使用相同的方式管理部署在任何基礎架構上的異構集群。支持跨集群應用分發,資源整合等。支持通過圖形化界面管理節點,監控集群狀態、應用資源監控、集群告警和通知等。
集群監控
Rainbond
支持對接多個 K8s 集群,支持各種云廠商托管 K8s 集群以及私有云、混合云等。支持用戶通過控制臺添加或刪除集群,支持跨集群應用分發。
通過grafana擴展的集群和節點監控
多集群管理 | 支持對接多個 K8s 集群 | 支持對接多個 K8s 集群 |
集群管理 | 存儲管理、節點管理 | 命令行管理 |
集群監控和可視化 | 豐富的監控 | 通過grafana擴展的監控 |
多租戶 |
從平臺角色、企業空間角色、項目角色三個維度定義多租戶 支持企業空間、項目進行資源限額,支持多租戶的邏輯隔離、網絡隔離 |
從企業角色、團隊角色兩個維度定義多租戶 支持對團隊的資源限額,支持多租戶的邏輯隔離 |
KubeSphere | Rainbond |
---|
KubeSphere 在多集群管理這塊比Rainbond體驗好,有豐富的監控和可觀測性,管理存儲和節點在控制臺全部完成,Rainbond在集群管理這塊需要在命令行下管理,監控功能也弱一些。
應用運維功能對比
基本管理
KubeSphere
支持對工作負載、容器組級別的管理,支持工作負載的YAML編輯、版本回滾、刪除、重新創建等。
支持對容器級別的日志查詢過濾,支持全局的日志查詢過濾。
KubeSphere 采用 Kubernetes 原生模式進行應用訪問,可通過 NodePort、LoadBalancer、Ingress實現外部訪問。支持擴展第三方負載均衡控制器以及 Ingress 控制器
Rainbond
支持對應用、組件級別的管理,支持應用批量啟動、重啟、更新、關閉、刪除以及組件的操作,支持應用和組件級別的環境變量、版本回滾等。
組件日志實時查看和篩選
Rainbond采用統一的應用網關,支持配置HTTP路由規則和HTTPS證書
由 Rainbond Gateway 統一封裝訪問,支持http、tcp、udp、grpc訪問組件。
基本管理 | 支持對工作負載級別的管理 | 支持對應用、組件級別的管理 |
日志 | 支持容器組日志查詢過濾和全局日志查詢過濾 | 支持組件日志查詢過濾 |
監控 | 支持工作負載級別的告警以及自定義監控圖 | 支持組件級別的監控以及圖表,告警可擴展 |
伸縮 | 支持手工和自動 | 支持手工和自動 |
網關 | 支持 NodePort、LoadBalancer 和 Nginx Ingress | 由 Rainbond Gateway 統一封裝訪問,支持http、tcp、udp、grpc |
KubeSphere | Rainbond |
---|
對于基本管理來說 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 的系統管理上功能有欠缺。
由于個人知識和經驗有限,如有理解不對的地方,還請見諒。
審核編輯:湯梓紅
-
開源
+關注
關注
3文章
3323瀏覽量
42475 -
云原生
+關注
關注
0文章
248瀏覽量
7949 -
kubesphere
+關注
關注
0文章
3瀏覽量
189
原文標題:開源云原生平臺KubeSphere與Rainbond對比
文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論