最近因?yàn)楣ぷ餍枰?,需要找一個(gè)功能完善的云原生應(yīng)用平臺(tái),經(jīng)過(guò)自己篩選和朋友推薦,剩下 KubeSphere 和 Rainbond,這兩個(gè)產(chǎn)品都是基于 Kubernetes 之上構(gòu)建的云原生應(yīng)用平臺(tái),功能都非常強(qiáng)大,但產(chǎn)品定位和功能側(cè)重不同,本文將介紹我在選型過(guò)程中從各維度對(duì)比兩款產(chǎn)品的過(guò)程記錄。
產(chǎn)品定位對(duì)比
KubeSphere是在 Kubernetes 之上構(gòu)建的面向云原生應(yīng)用的分布式操作系統(tǒng),完全開源,支持多云與多集群管理,提供全棧的 IT 自動(dòng)化運(yùn)維能力,簡(jiǎn)化企業(yè)的 DevOps 工作流。作為全棧的多租戶容器平臺(tái),KubeSphere 提供了運(yùn)維友好的向?qū)讲僮鹘缑?,幫助企業(yè)快速構(gòu)建一個(gè)強(qiáng)大和功能豐富的容器云平臺(tái)。KubeSphere 為用戶提供構(gòu)建企業(yè)級(jí) Kubernetes 環(huán)境所需的多項(xiàng)功能,例如多云與多集群管理、Kubernetes 資源管理、DevOps、應(yīng)用生命周期管理、微服務(wù)治理(服務(wù)網(wǎng)格)、日志查詢與收集、服務(wù)與網(wǎng)絡(luò)、多租戶管理、監(jiān)控告警、事件與審計(jì)查詢、存儲(chǔ)管理、訪問(wèn)權(quán)限控制、GPU 支持、網(wǎng)絡(luò)策略、鏡像倉(cāng)庫(kù)管理以及安全管理等。
Rainbond是一個(gè)云原生應(yīng)用管理平臺(tái),使用簡(jiǎn)單,不需要懂容器、Kubernetes和底層復(fù)雜技術(shù),支持管理多個(gè)Kubernetes集群,和管理企業(yè)應(yīng)用全生命周期。主要功能包括應(yīng)用開發(fā)環(huán)境、應(yīng)用市場(chǎng)、微服務(wù)架構(gòu)、應(yīng)用交付、應(yīng)用運(yùn)維、應(yīng)用級(jí)多云管理等。Rainbond 遵循 以應(yīng)用為中心的設(shè)計(jì)理念,統(tǒng)一封裝容器、Kubernetes和底層基礎(chǔ)設(shè)施相關(guān)技術(shù),讓使用者專注于業(yè)務(wù)本身, 避免在業(yè)務(wù)以外技術(shù)上花費(fèi)大量學(xué)習(xí)和管理精力。
Slogan | 面向云原生應(yīng)用的混合云平臺(tái) | 云原生多云應(yīng)用管理平臺(tái) |
抽象 | 容器和K8s概念和抽象為主,應(yīng)用級(jí)抽象為輔 | 應(yīng)用級(jí)抽象 |
定位 | 面向懂K8s相關(guān)技術(shù)的運(yùn)維和開發(fā) | 面向所有運(yùn)維和開發(fā),平臺(tái)管理需要懂K8s |
KubeSphere | Rainbond |
---|
由于產(chǎn)品抽象不同,表現(xiàn)出來(lái)的概念和流程也有很大差異,KubeSphere主要是Kubernetes相關(guān)概念和抽象,使用和管理都需要懂Kubernetes相關(guān)體系知識(shí),懂Kubernetes的人能快速上手,Rainbond應(yīng)用級(jí)抽象,使用門檻很低,面向不懂Kubernetes的普通開發(fā)人員,平臺(tái)管理跟KubeSphere一樣都需要懂Kubernetes。
開源社區(qū)活躍度對(duì)比
社區(qū)活躍度 | 論壇、微信群都活躍 | 微信 釘釘活躍 |
Stars | 11003 | 3451 |
文檔成熟度 | 很全面 | 很全面 |
版本迭代 | 近一年迭代了4個(gè)版本 | 近一年迭代了8個(gè)版本 |
開源 | 100% 開源 | 100% 開源 |
KubeSphere | Rainbond |
---|
KubeSphere 社區(qū)更加活躍些,畢竟是萬(wàn)星開源項(xiàng)目,用戶遍布國(guó)內(nèi)外。Rainbond 社區(qū)用戶基本都是國(guó)內(nèi)用戶,Star上差了些不過(guò)Github、社區(qū)群也蠻活躍的。
安裝體驗(yàn)對(duì)比
KubeSphere
支持通過(guò)一條命令在 Linux 上快速安裝 KubeSphere。
./kkcreatecluster--with-kubernetesv1.22.10--with-kubespherev3.3.0
Rainbond
支持通過(guò)一條命令在 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 | 支持 | 支持 |
安裝后組件數(shù)量 | 啟動(dòng)所有可拔插組件后 Pod 大概 55 個(gè)左右 | 大概 15 個(gè) Pod |
KubeSphere | Rainbond |
---|
KubeSphere和Rainbond安裝都很簡(jiǎn)單。KubeSphere 自研的 KubeKey 安裝工具,在服務(wù)上安裝 K8s 和 KubeSphere 很方便。KubeSphere 的可拔插組件這個(gè)設(shè)計(jì)還蠻好的,Allinone安裝之后有 5 個(gè) Pod 左右,能滿足基本運(yùn)行需求,需要其他功能就通過(guò)可拔插開啟,開啟所有組件后 Pod 大概 60 個(gè)左右。Rainbond 能支持在 Mac M1 Docker Desktop 上安裝,這個(gè)安裝體驗(yàn)還蠻好的可以在本地開發(fā),Rainbond 啟動(dòng)后 Pod 大概15個(gè)左右,內(nèi)存占用1G 左右。
應(yīng)用部署功能對(duì)比
KubeSphere
KubeSphere對(duì)接git倉(cāng)庫(kù)部署源碼,支持 Source-to-Image (S2I) 標(biāo)準(zhǔn)工作流將源碼打包成鏡像,并部署在 Kubernetes 集群中。支持 Java、Python、Node,其他語(yǔ)言可通過(guò)自定義 S2I 實(shí)現(xiàn)源碼構(gòu)建。
KubeSphere采用 Binary-to-Image (B2I) 標(biāo)準(zhǔn)工作流將二進(jìn)制打包成鏡像,并部署在 Kubernetes 集群中。支持通過(guò) Jar、War、二進(jìn)制
KubeSphere 支持自定義持續(xù)構(gòu)建的流水線
Rainbond
Rainbond支持對(duì)接和整合 Gitlab、Github、Gitee、SVN,實(shí)現(xiàn)統(tǒng)一入口
Rainbond 的構(gòu)建支持自動(dòng)識(shí)別源代碼類型,支持自動(dòng)識(shí)別 Java Maven、Java Gradle、Java Jar、Java War、Python、PHP、.NetCore、Golang、NodeJS、Static HTML。
每種識(shí)別的開發(fā)語(yǔ)言支持設(shè)置環(huán)境相關(guān)信息,并自動(dòng)構(gòu)建成容器鏡像。
源碼部署 | 支持 Java、Python、Node | 支持自動(dòng)識(shí)別 Java Maven、Java Gradle、Java Jar、Java War、Python、PHP、.NetCore、Golang、NodeJS、Static HTML |
二進(jìn)制部署 | Jar、War | Jar、War |
容器鏡像 | 支持容器鏡像部署 | 支持容器鏡像、docker run、docker compose部署 |
Kubernetes 應(yīng)用 | Yaml、Helm | Yaml、Helm |
持續(xù)交付 | 支持GitOps和自定義流水線步驟 | 支持GitOps |
KubeSphere | Rainbond |
---|
KubeSphere 兼容Kubernetes體系,應(yīng)用部署使用S2I和B2I,KubeSphere自定義流水線功能非常強(qiáng)大,配置靈活。Rainbond 應(yīng)用部署不需要懂容器和Kubernetes,支持常見的源代碼,并自動(dòng)識(shí)別和構(gòu)建,使用非常簡(jiǎn)單。
微服務(wù)架構(gòu)功能對(duì)比
KubeSphere
KubeSphere的微服務(wù)架構(gòu)基于 Istio 實(shí)現(xiàn),支持微服務(wù)的流量可視化管理。
基于Jaeger的調(diào)用鏈分析
Rainbond
Rainbond的微服務(wù)架構(gòu)拓?fù)浜头?wù)編排,通過(guò)圖形化的編排,添加組件之間的依賴關(guān)系,添加后也會(huì)注入服務(wù)之間的連接信息等。拓?fù)鋱D可以展示服務(wù)之間的關(guān)系,用顏色區(qū)分服務(wù)的狀態(tài)等。
微服務(wù)實(shí)時(shí)性能分析
服務(wù)網(wǎng)格支持 | Istio | 內(nèi)置、Istio、Linkerd |
服務(wù)拓?fù)鋱D | 流量拓?fù)鋱D | 微服務(wù)依賴關(guān)系和服務(wù)狀態(tài)展示 |
服務(wù)治理 | 熔斷、限流 | 插件實(shí)現(xiàn)熔斷斷路器和限流 |
微服務(wù)可觀測(cè)性 | 調(diào)用鏈分析 | 通過(guò)插件擴(kuò)展非常多可觀測(cè)性:性能分析、pinpoint、skywalking、Jaeger等 |
微服務(wù)編排 | 代碼編排 | “拖拉拽”的形式編排微服務(wù)依賴關(guān)系 |
KubeSphere | Rainbond |
---|
KubeSphere 完全依賴 Istio 實(shí)現(xiàn)微服務(wù)架構(gòu),對(duì)Istio的功能支持非常完整,KubeSphere彌補(bǔ)了Istio沒有圖形化的控制面板的不足,簡(jiǎn)化了 Istio 的上手難度,服務(wù)之間的拓?fù)鋱D是根據(jù)流量走向自動(dòng)生成的,可以直觀的看到服務(wù)間流量。
Rainbond 的服務(wù)網(wǎng)格、服務(wù)治理、可觀測(cè)性都是通過(guò)插件體系支持的,傳統(tǒng)應(yīng)用開啟服務(wù)網(wǎng)格插件,馬上就能支持微服務(wù)架構(gòu),服務(wù)治理和可觀測(cè)性也只需要開啟相應(yīng)插件,Rainbond內(nèi)置了很多插件,有需要還可以自行擴(kuò)展,可以將自己趁手的工具添加進(jìn)來(lái),另外,圖形化手動(dòng)編排服務(wù)是個(gè)特色,不用改代碼就可以動(dòng)態(tài)調(diào)整依賴關(guān)系。
應(yīng)用市場(chǎng)功能對(duì)比
KubeSphere
內(nèi)置應(yīng)用商店有 30 個(gè)應(yīng)用可直接安裝。
基于 Helm Chart 創(chuàng)建應(yīng)用模板。
發(fā)布 Helm Chart 應(yīng)用模板。
Rainbond
內(nèi)置應(yīng)用商店有 90+ 應(yīng)用可直接安裝。
支持用戶將已經(jīng)部署好的應(yīng)用一鍵發(fā)布至應(yīng)用市場(chǎng),無(wú)需編寫復(fù)雜的YAML??梢砸绘I發(fā)布應(yīng)用模型內(nèi)所有元數(shù)據(jù),例如依賴關(guān)系、配置文件、存儲(chǔ)信息等。
支持應(yīng)用離線導(dǎo)出導(dǎo)入,支持導(dǎo)出 Rainbond App 應(yīng)用包、Docker Compose 應(yīng)用包、非容器環(huán)境應(yīng)用包。
支持基于 Rainbond 應(yīng)用市場(chǎng)一鍵安裝和一鍵升級(jí),升級(jí)會(huì)包含應(yīng)用模型內(nèi)所有元數(shù)據(jù),包括依賴關(guān)系等。
應(yīng)用模板 | Helm | Rainbond 應(yīng)用模版、Helm |
應(yīng)用發(fā)布 | 上傳 Helm Chart | 一鍵發(fā)布到應(yīng)用市場(chǎng) |
應(yīng)用安裝 | 一鍵安裝 | 一鍵安裝 |
應(yīng)用升級(jí) | 整體升級(jí) | 部分升級(jí)或整體升級(jí) |
離線導(dǎo)入導(dǎo)出 | 不支持 | 離線導(dǎo)出多種格式包 |
內(nèi)置應(yīng)用 | 30 可用應(yīng)用 | 90+ 可用應(yīng)用 |
KubeSphere | Rainbond |
---|
在應(yīng)用市場(chǎng)這塊Rainbond的功能比KubeSphere強(qiáng)大很多,易用性也好很多。KubeSphere 在應(yīng)用市場(chǎng)這塊是基于標(biāo)準(zhǔn)的 Helm 實(shí)現(xiàn)的,在應(yīng)用發(fā)布、安裝、升級(jí)這套流程里是按照標(biāo)準(zhǔn)的 Helm 應(yīng)用規(guī)范實(shí)現(xiàn),制作 Helm Chart 門檻比較高,功能也受限于Helm。Rainbond 的應(yīng)用市場(chǎng) 定義了自己的應(yīng)用模型規(guī)范,也支持Helm Chart轉(zhuǎn)成Rainbond的應(yīng)用模型,應(yīng)用發(fā)布支持一鍵發(fā)布由幾十個(gè)服務(wù)組成的應(yīng)用,無(wú)需編寫復(fù)雜的YAML,離線導(dǎo)出是在企業(yè)軟件交付場(chǎng)景非常實(shí)用的功能。
Kubenetes 多集群管理功能對(duì)比
KubeSphere
KubeSphere支持對(duì)接多個(gè) K8s 集群,支持各種云廠商托管 K8s 集群以及私有云、混合云等。借助 KubeSphere的圖形化 Web 控制臺(tái),用戶可以管理底層的基礎(chǔ)架構(gòu),例如添加或刪除集群??梢允褂孟嗤姆绞焦芾聿渴鹪谌魏位A(chǔ)架構(gòu)上的異構(gòu)集群。支持跨集群應(yīng)用分發(fā),資源整合等。支持通過(guò)圖形化界面管理節(jié)點(diǎn),監(jiān)控集群狀態(tài)、應(yīng)用資源監(jiān)控、集群告警和通知等。
集群監(jiān)控
Rainbond
支持對(duì)接多個(gè) K8s 集群,支持各種云廠商托管 K8s 集群以及私有云、混合云等。支持用戶通過(guò)控制臺(tái)添加或刪除集群,支持跨集群應(yīng)用分發(fā)。
通過(guò)grafana擴(kuò)展的集群和節(jié)點(diǎn)監(jiān)控
多集群管理 | 支持對(duì)接多個(gè) K8s 集群 | 支持對(duì)接多個(gè) K8s 集群 |
集群管理 | 存儲(chǔ)管理、節(jié)點(diǎn)管理 | 命令行管理 |
集群監(jiān)控和可視化 | 豐富的監(jiān)控 | 通過(guò)grafana擴(kuò)展的監(jiān)控 |
多租戶 |
從平臺(tái)角色、企業(yè)空間角色、項(xiàng)目角色三個(gè)維度定義多租戶 支持企業(yè)空間、項(xiàng)目進(jìn)行資源限額,支持多租戶的邏輯隔離、網(wǎng)絡(luò)隔離 |
從企業(yè)角色、團(tuán)隊(duì)角色兩個(gè)維度定義多租戶 支持對(duì)團(tuán)隊(duì)的資源限額,支持多租戶的邏輯隔離 |
KubeSphere | Rainbond |
---|
KubeSphere 在多集群管理這塊比Rainbond體驗(yàn)好,有豐富的監(jiān)控和可觀測(cè)性,管理存儲(chǔ)和節(jié)點(diǎn)在控制臺(tái)全部完成,Rainbond在集群管理這塊需要在命令行下管理,監(jiān)控功能也弱一些。
應(yīng)用運(yùn)維功能對(duì)比
基本管理
KubeSphere
支持對(duì)工作負(fù)載、容器組級(jí)別的管理,支持工作負(fù)載的YAML編輯、版本回滾、刪除、重新創(chuàng)建等。
支持對(duì)容器級(jí)別的日志查詢過(guò)濾,支持全局的日志查詢過(guò)濾。
KubeSphere 采用 Kubernetes 原生模式進(jìn)行應(yīng)用訪問(wèn),可通過(guò) NodePort、LoadBalancer、Ingress實(shí)現(xiàn)外部訪問(wèn)。支持?jǐn)U展第三方負(fù)載均衡控制器以及 Ingress 控制器
Rainbond
支持對(duì)應(yīng)用、組件級(jí)別的管理,支持應(yīng)用批量啟動(dòng)、重啟、更新、關(guān)閉、刪除以及組件的操作,支持應(yīng)用和組件級(jí)別的環(huán)境變量、版本回滾等。
組件日志實(shí)時(shí)查看和篩選
Rainbond采用統(tǒng)一的應(yīng)用網(wǎng)關(guān),支持配置HTTP路由規(guī)則和HTTPS證書
由 Rainbond Gateway 統(tǒng)一封裝訪問(wèn),支持http、tcp、udp、grpc訪問(wèn)組件。
基本管理 | 支持對(duì)工作負(fù)載級(jí)別的管理 | 支持對(duì)應(yīng)用、組件級(jí)別的管理 |
日志 | 支持容器組日志查詢過(guò)濾和全局日志查詢過(guò)濾 | 支持組件日志查詢過(guò)濾 |
監(jiān)控 | 支持工作負(fù)載級(jí)別的告警以及自定義監(jiān)控圖 | 支持組件級(jí)別的監(jiān)控以及圖表,告警可擴(kuò)展 |
伸縮 | 支持手工和自動(dòng) | 支持手工和自動(dòng) |
網(wǎng)關(guān) | 支持 NodePort、LoadBalancer 和 Nginx Ingress | 由 Rainbond Gateway 統(tǒng)一封裝訪問(wèn),支持http、tcp、udp、grpc |
KubeSphere | Rainbond |
---|
對(duì)于基本管理來(lái)說(shuō) KubeSphere 是原生 K8s 的一些管理,比如刪除Pod、編輯YAML、配置環(huán)境、自定伸縮等,同樣 Rainbond 展現(xiàn)的是應(yīng)用級(jí)概念,比如:在K8s里沒有關(guān)閉的概念,而在Rainbond里應(yīng)用不用了直接關(guān)閉,想用了再啟動(dòng),Rainbond做了很多應(yīng)用級(jí)的概念轉(zhuǎn)化,對(duì)于不動(dòng)K8s的開發(fā)人員更加容易接受。
KubeSphere 在網(wǎng)關(guān)這塊同樣也是遵循了 K8s 原生的模式,通過(guò) NodePort、LoadBalancer、Ingress實(shí)現(xiàn)外部訪問(wèn),并通過(guò)圖形化操作簡(jiǎn)化了 YAML 的操作,優(yōu)點(diǎn)是可以擴(kuò)展更多第三方 Ingress 控制器,例如 Traefik 等。Rainbond 網(wǎng)關(guān)則是通過(guò) Rainbond Gateway 統(tǒng)一封裝實(shí)現(xiàn)外部訪問(wèn),簡(jiǎn)化了用戶的操作,一鍵開啟外部訪問(wèn),同時(shí)也能配置 HTTP 的路由規(guī)則等,使用的體驗(yàn)非常好。
總結(jié)
總體來(lái)說(shuō),KubeSphere 和 Rainbond 都很成熟,也都有大量開源使用用戶,只是定位不同,所以適用場(chǎng)景也會(huì)不同。
KubeSphere 在兼容 Kubernetes 生態(tài)方面做的非常好,包裝和整合了很多云原生的工具,并擴(kuò)展了對(duì) Kubernetes 和開源工具的管理能力,對(duì)于想要管理 Kubernetes 集群的系統(tǒng)管理員是個(gè)好的工具,熟悉 Kubernetes 的工程師也可以自行擴(kuò)展 KubeSphere 的能力。但對(duì)開發(fā)人員來(lái)開發(fā)和管理應(yīng)用來(lái)說(shuō),門檻比較高,需要學(xué)習(xí)和理解的概念非常多。
Rainbond 屏蔽了底層復(fù)雜的技術(shù),基于應(yīng)用級(jí)抽象,在 Rainbond 的產(chǎn)品閉環(huán)里,體驗(yàn)非常好。這適用普通的開發(fā)人員開發(fā)和管理應(yīng)用,對(duì)于不熟悉 Kubernetes 用戶快速起步也是一個(gè)不錯(cuò)的選擇,在企業(yè)軟件交付上 Rainbond 非常擅長(zhǎng)。但在對(duì) Kubernetes 的系統(tǒng)管理上功能有欠缺。
由于個(gè)人知識(shí)和經(jīng)驗(yàn)有限,如有理解不對(duì)的地方,還請(qǐng)見諒。
審核編輯:湯梓紅
-
開源
+關(guān)注
關(guān)注
3文章
3218瀏覽量
42329 -
云原生
+關(guān)注
關(guān)注
0文章
240瀏覽量
7932 -
kubesphere
+關(guān)注
關(guān)注
0文章
3瀏覽量
187
原文標(biāo)題:開源云原生平臺(tái)KubeSphere與Rainbond對(duì)比
文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論