当前位置: 首页 > news >正文

K8s WebUI 选型:国外 Rancher vs 国内 KubeSphere vs 原生 Dashboard,从部署到使用心得谁更适合企业级场景?

一、Rancher

在 Kubernetes 成为容器编排事实标准的今天,企业面对的早已不是单一集群的简单运维,而是混合云、多云环境下的多集群管理难题 —— 如何在 AWS、Azure、阿里云等公有云,以及私有数据中心的异构集群间建立统一的管控入口?如何实现细粒度的权限隔离与合规审计?如何降低跨团队协作的技术门槛?

Rancher作为业界领先的企业级 Kubernetes 管理平台,从诞生起就瞄准了这些核心痛点。它并非简单的图形化工具,而是一套完整的 “Kubernetes 操作系统”:既能一键部署和管理 Kubernetes 集群(无论是自建、托管还是边缘环境),又能通过强大的多租户 RBAC、集群模板、安全扫描等功能,将复杂的底层基础设施抽象为直观的可视化界面,让运维团队摆脱重复的命令行操作,让开发团队更专注于应用本身。

对于企业级生产环境而言,Rancher 的价值不仅在于 “简化管理”,更在于其对大规模、跨环境集群的 “标准化治理” 能力 —— 这也是它能在金融、制造、零售等对稳定性和合规性要求严苛的行业中广泛应用的核心原因。

1. 部署Rancher

本文以2.11.3版本Rancher为例子部署使用。

1.1 创建rancher挂载目录

root@k8s-master:~# mkdir -p /data/rancher_home/rancher
root@k8s-master:~# mkdir -p /data/rancher_home/auditlogroot@k8s-master:~# ll /data/rancher_home/
total 16
drwxr-xr-x 4 root root 4096 Jul 24 13:39 ./
drwxr-xr-x 3 root root 4096 Jul 24 13:38 ../
drwxr-xr-x 2 root root 4096 Jul 24 13:39 auditlog/
drwxr-xr-x 4 root root 4096 Jul 24 15:42 rancher/

1.2 启动Rancher

如果您的K8S集群的容器运行时为Docker,可以使用如下命令:

docker run -d \--privileged \--restart=unless-stopped \-p 80:80 -p 443:443 \-v /data/rancher_home/rancher:/var/lib/rancher \-v /data/rancher_home/auditlog:/var/log/auditlog \--name xdclass_rancher1 \rancher/rancher:v2.11.3

 如果您的K8S集群的容器运行时为Containerd,可以使用如下命令:

ctr -n k8s.io run -d \--privileged \--net-host \--mount type=bind,src=/data/rancher_home/rancher,dst=/var/lib/rancher,options=rbind:rw \--mount type=bind,src=/data/rancher_home/auditlog,dst=/var/log/auditlog,options=rbind:rw \docker.io/rancher/rancher:v2.11.3 \xdclass_rancher1

假如您有证书的情况下也可以使用volume去挂载使用

  -v /your/cert/cert.pem:/etc/rancher/ssl/cert.pem \-v /your/cert/key.pem:/etc/rancher/ssl/key.pem \-v /your/cert/fullchain.pem:/etc/rancher/ssl/fullchain.pem \

等待时间可能会比较久,可以观察rancher的日志,出现如下日志即为初始化成功。

2025/07/24 06:48:17 [INFO] RDPClient: Checking if dialer is built...
2025/07/24 06:48:17 [INFO] RDPClient: Dialer is not built yet, waiting 5 secs to re-check.
2025/07/24 06:48:18 [INFO] RDPClient: certificate updated successfully
2025/07/24 06:48:22 [INFO] RDPClient: Checking if dialer is built...
2025/07/24 06:48:22 [INFO] RDPClient: Dialer is built. Ready to start.
2025/07/24 06:48:22 [INFO] Selected pod "api-extension-68df5cc4dc-bvl69" for label "app=api-extension"
2025/07/24 06:48:22 [INFO] RDPClient: connecting to wss://127.0.0.1:5555/connect
2025/07/24 06:48:22 [INFO] Connecting to proxy
2025/07/24 06:48:22 [INFO] RDPClient: remotedialer session connected!
W0724 06:48:24.829751      44 warnings.go:70] v1 ComponentStatus is deprecated in v1.19+

访问我们的IP地址

查看密码执行如图提示的命令即可:

root@k8s-master:~# nerdctl logs f2b 2>&1 | grep "Bootstrap Password:"
2025/07/24 06:28:56 [INFO] Bootstrap Password: jjv9ld597ccmsbkqcs459hxp75w5fx7gpcr45pz7mx9dsq6w7kx78w

这里建议选择自定义设置密码去使用(设置的密码长度至少为12位) 

在偏好可以设置中文简体 

2. 导入K8S集群

 

 按照提示执行命令

如果第一条命令报错

root@k8s-master:~# kubectl apply -f https://10.0.0.6/v3/import/b48mkglt8h5hhb2rbwk5g64td85r697pcm5ft2kh7xmt7t6xdkjq9j_c-ptj2m.yaml
Unable to connect to the server: tls: failed to verify certificate: x509: certificate signed by unknown authority

 那就执行下面的第二条

root@k8s-master:~# curl --insecure -sfL https://10.0.0.6/v3/import/b48mkglt8h5hhb2rbwk5g64td85r697pcm5ft2kh7xmt7t6xdkjq9j_c-ptj2m.yaml | kubectl apply -f -
clusterrole.rbac.authorization.k8s.io/proxy-clusterrole-kubeapiserver created
clusterrolebinding.rbac.authorization.k8s.io/proxy-role-binding-kubernetes-master created
namespace/cattle-system created
serviceaccount/cattle created
clusterrolebinding.rbac.authorization.k8s.io/cattle-admin-binding created
secret/cattle-credentials-df852dcfb8 created
clusterrole.rbac.authorization.k8s.io/cattle-admin created
Warning: spec.template.spec.affinity.nodeAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms[0].matchExpressions[0].key: beta.kubernetes.io/os is deprecated since v1.14; use "kubernetes.io/os" instead
Warning: spec.template.spec.affinity.nodeAffinity.preferredDuringSchedulingIgnoredDuringExecution[2].preference.matchExpressions[0].key: node-role.kubernetes.io/master is use "node-role.kubernetes.io/control-plane" instead
deployment.apps/cattle-cluster-agent created
service/cattle-cluster-agent created

总之遇到问题先看清楚官方给出的提示,尝试是否可以解决。

 等待pod启动

root@k8s-master:~# kubectl get po -A -l app=cattle-cluster-agent
NAMESPACE       NAME                                   READY   STATUS    RESTARTS   AGE
cattle-system   cattle-cluster-agent-fcf74bd7c-r2dlj   1/1     Running   0          80s
cattle-system   cattle-cluster-agent-fcf74bd7c-w4lcd   1/1     Running   0          70s

查看集群导入情况(active即可) 

 然后即可体验

 

3. 使用心得

多集群管理是真方便。公司的阿里云、腾讯云和自建集群,以前靠 kubectl 切来切去,总怕搞错。现在 Rancher 控制台里一目了然,跨云建个镜像集群,半小时搞定,比手动改配置省太多事。不过第一次用没开端口,agent 连不上,折腾俩小时才发现是防火墙的问题 —— 它虽简化操作,却不能完全不懂底层。

权限控制能少背锅。以前开发和运维共用一个账号,出问题查不清。现在用 RBAC,开发只能动自己的 namespace,误删部署也影响不大,审计日志还能直接定位到人。就是初期配权限有点绕,后来按 “团队建项目、按职责配角色” 才顺过来。

图形化实用,但命令行仍得会。改 Ingress、查日志,界面点几下比敲命令快多了。但遇到 CRD 异常,界面只能看基础信息,最后还得靠 kubectl 排查。现在习惯是:日常操作靠 Rancher 提效,复杂问题还是用命令行深入分析。

升级时踏实多了。以前手动升集群像拆炸弹,生怕哪个节点挂了。Rancher 能自动按顺序来,卡住还会暂停等处理。不过得注意版本兼容,有次用旧版 Rancher 升集群,calico 起不来,才知道得先升级 Rancher 本身。

总的来说,集群少了用着嫌 “重”,但超过 5 个集群,或者需要跨团队协作、控权限,Rancher 是真能省事儿。前提是得懂点 K8s 底层,工具再好用,也替代不了对技术的理解。

二、KubeSphere

当国内企业在 Kubernetes 的浪潮中探索前行时,常常会面临这样的困境:国外工具虽功能强大,却在适配国内云厂商、遵循本地化合规要求、提供贴合本土团队使用习惯的功能上略显 “水土不服”;而原生 Dashboard 又过于基础,难以满足企业级生产环境的复杂需求。

在这样的背景下,Kubesphere作为一款源自国内的开源 Kubernetes 容器平台,逐渐走进了更多企业的视野。它并非简单对标国外工具,而是从国内企业的实际场景出发 —— 无论是与阿里云、华为云等国内云厂商的深度集成,还是对多租户隔离、细粒度 RBAC 权限控制等企业级需求的原生支持,亦或是贴合中文用户习惯的界面设计与操作逻辑,都让国内团队在使用时少了几分 “适配” 的折腾,多了几分 “顺手” 的默契。

更重要的是,作为完全开源的平台,Kubesphere 不仅免费提供了从应用部署、监控告警到日志分析的全链路功能,还允许企业根据自身需求进行二次开发,这对于注重成本控制和自主可控的国内企业而言,无疑具有独特的吸引力。可以说,它既是 Kubernetes 生态中 “国产化” 的有力代表,也是帮助国内企业降低容器化门槛、实现高效集群管理的实用工具。

1. 部署KubeSphere

1.1 安装Helm并配置自动补全

root@k8s-master:~# wget https://get.helm.sh/helm-v3.18.4-linux-amd64.tar.gz
root@k8s-master:~# tar xf helm-v3.18.4-linux-amd64.tar.gz   -C /usr/local/bin/ linux-amd64/helm --strip-components=1
root@k8s-master:~# helm version
version.BuildInfo{Version:"v3.18.3", GitCommit:"6838ebcf265a3842d1433956e8a622e3290cf324", GitTreeState:"clean", GoVersion:"go1.24.4"}配置helm的自动补全功能[root@k8s-master ~]# helm completion bash > /etc/bash_completion.d/helm
[root@k8s-master ~]# source /etc/bash_completion.d/helm
[root@k8s-master ~]# echo 'source /etc/bash_completion.d/helm' >> ~/.bashrc 
[root@k8s-master ~]# helm   # 空格后,连续按2次tab键就可以看到下面的提示

1.2. 使用helm部署kubeSphere

在集群节点,执行以下命令安装 KubeSphere Core。
[root@k8s-master ~]# helm upgrade --install -n kubesphere-system --create-namespace ks-core https://charts.kubesphere.io/main/ks-core-1.1.4.tgz --debug --wait --set global.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks --set extension.imageRegistry=swr.cn-southwest-2.myhuaweicloud.com/ks# 完成之后会有对应的反馈
NOTES:
Thank you for choosing KubeSphere Helm Chart.Please be patient and wait for several seconds for the KubeSphere deployment to complete.1. Wait for Deployment CompletionConfirm that all KubeSphere components are running by executing the following command:kubectl get pods -n kubesphere-system
2. Access the KubeSphere ConsoleOnce the deployment is complete, you can access the KubeSphere console using the following URL:  http://10.0.0.6:308803. Login to KubeSphere ConsoleUse the following credentials to log in:Account: adminPassword: P@88w0rdNOTE: It is highly recommended to change the default password immediately after the first login.
For additional information and details, please visit https://kubesphere.io.

输入反馈信息中的用户名和密码 

 重置密码

 

2. 使用心得

用 Kubesphere最大的感受是 “接地气”。作为国内团队开发的平台,它的界面设计和操作逻辑特别符合中文用户习惯,菜单命名直白,新手跟着引导走,半天就能上手基本操作。

对国内环境的适配很到位,和阿里云、腾讯云的集群对接时,不用额外折腾插件,一键导入后就能管理,比某些国外工具省了不少适配功夫。内置的应用商店里,像 Nacos、Seata 这些国内常用中间件都能直接部署,省去了自己找 Chart 包的麻烦。

多租户和权限管理功能够用,给业务部门开独立空间,资源配额、操作权限分得明明白白,运维不用再担心有人误操作集群级资源。不过偶尔会遇到小 bug,比如日志查询偶尔卡顿,好在社区响应挺快,升级版本后大多能解决。

整体来说,中小团队用它挺合适,开源免费,功能能覆盖从开发到生产的需求,特别是国内企业,不会有太多 “水土不服” 的问题。

三、原生Dashboard

对于刚接触 Kubernetes 的人来说,面对密密麻麻的命令行和抽象的资源对象,往往需要一个直观的 “窗口” 来快速了解集群状态 ——Kubernetes 原生 Dashboard便是官方给出的答案。

作为 Kubernetes 官方维护的图形化工具,它最大的特点是 “原生”:与 K8s 核心组件深度绑定,随集群版本同步更新,兼容性无需额外顾虑;界面设计简洁直接,没有多余的复杂功能,却能清晰展示节点、Pod、服务等核心资源的运行状态,支持基本的创建、删除、编辑操作,甚至能一键查看 Pod 日志、执行容器命令。

它就像 Kubernetes 自带的 “简易控制面板”,不需要额外部署复杂依赖,轻量且资源占用低,非常适合初学者入门时直观理解 Kubernetes 的资源关系,或是作为小型集群的基础监控与操作入口。不过,也正因其 “原生” 定位,它更像是一块 “璞玉”—— 功能聚焦基础操作,缺乏企业级所需的多租户、高级监控等能力,适合作为入门工具或与其他工具搭配使用。

1. 部署Dashboard

root@k8s-master:~# wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.5.1/aio/deploy/recommended.yamlroot@k8s-master:~# kubectl apply -f recommended.yaml
namespace/kubernetes-dashboard created
serviceaccount/kubernetes-dashboard created
service/kubernetes-dashboard created
secret/kubernetes-dashboard-certs created
secret/kubernetes-dashboard-csrf created
secret/kubernetes-dashboard-key-holder created
configmap/kubernetes-dashboard-settings created
role.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrole.rbac.authorization.k8s.io/kubernetes-dashboard created
rolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
clusterrolebinding.rbac.authorization.k8s.io/kubernetes-dashboard created
deployment.apps/kubernetes-dashboard created
service/dashboard-metrics-scraper created
deployment.apps/dashboard-metrics-scraper created

2.查看资源

修改一下我们资源清单的Service的类型即可,默认是ClusterIP。

查看资源 
root@k8s-master:~# kubectl get pods,svc -n kubernetes-dashboard 
NAME                                             READY   STATUS    RESTARTS   AGE
pod/dashboard-metrics-scraper-568479c5df-qfkgw   1/1     Running   0          2m37s
pod/kubernetes-dashboard-f546c4f85-tprqh         1/1     Running   0          15mNAME                                TYPE       CLUSTER-IP       EXTERNAL-IP   PORT(S)          AGE
service/dashboard-metrics-scraper   NodePort   10.96.10.97      <none>        8000:30223/TCP   31m
service/kubernetes-dashboard        NodePort   10.101.177.245   <none>        443:30974/TCP    31m

部署完访问,你可以会看到这个页面 

隐私错误:

10.0.0.6 使用加密来保护你的信息。这次,当 Microsoft Edge 尝试连接到 10.0.0.6 时,网站发回了不正常和不正确的凭据。如果攻击者尝试假冒 10.0.0.6,或者 WLAN 登录屏幕已中断连接,则可能会发生这种情况。你的信息仍然安全,因为在交换任何数据之前,Microsoft Edge 停止了连接。

你现在无法访问 10.0.0.6,因为网站发送了 Microsoft Edge 无法处理的杂乱凭据。网络错误和攻击通常是暂时的,因此该页面以后可能会恢复正常。

 这时候我们只需要鼠标放在浏览器的任意位置输入神秘代码: thisisunsafe

就跳转到正常页面了

 3. 使用token登录

root@k8s-master:~# kubectl -n kubernetes-dashboard \get secret \$(kubectl -n kubernetes-dashboard get sa kubernetes-dashboard \-o jsonpath='{.secrets[0].name}') \-o go-template='{{.data.token | base64decode}}'
echoeyJhbGciOiJSUzI1NiIsImtpZCI6InhGd05XWUdqbmx0czM5NG1fcmV3RlNldGVxeFpLdzNkWXoxbXFnQjZCTVUifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiXSwiZXhwIjoxNzUzMzUxMjE3LCJpYXQiOjE3NTMzNDc2MTcsImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwianRpIjoiM2Y1ZTA2ODgtODU5Yy00NjNhLTliYTctY2FhYTBiZDgzZTdlIiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJrdWJlcm5ldGVzLWRhc2hib2FyZCIsInVpZCI6IjQ5MGUyYjQ2LTRhOTktNDkzOC1hNjMyLTMzMTljYWY5OWNmZiJ9fSwibmJmIjoxNzUzMzQ3NjE3LCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQ6a3ViZXJuZXRlcy1kYXNoYm9hcmQifQ.tTBMvteQZQbN55-Cg-wdMeMEaCwtwuQ15uKtMVyUKUIwzfqurIEXvkF4V0DQ3maiUukuMsVE62avNEBB4xViEfC3wpE6cSUPGw4Lar0uPvwRPoOKvvY3BMdwENA2uBDwu2FiV4VYHJ0-tZN8JRZzX7nPDiy-5Ze2rLiW5OfE0879cK5OzX1XtAI1vS9bmHQqPvSxefThw1X3W5nSDf-_fHSF5DL9a2Z6ToO0flCLt354Pq4Wj4ZqZtq0-OuCHtKRREs5AoYE_wPBncWnICMUq-9X7Bsq8kJyvW3fMBa8Eg7bYavsHCiSImqIWvNpsMXSH5odxbXgDlk2RdspGgHGmA

4. 使用心得

自己测试玩玩就行,生产环境不用。 

四、三者的区别总结

对比维度RancherKubeSphereKubernetes 原生 Dashboard
定位企业级多集群 K8s 管理平台(开源 + 商业支持)国内开源企业级 K8s 平台(聚焦多云 / 混合云本地化)K8s 官方轻量图形化工具(基础监控与操作入口)
相同点1. 均提供 K8s 资源可视化界面(Pod、Deployment、Service 等)
2. 支持基本操作(创建、删除、编辑资源)
3. 兼容标准 K8s 集群(自建 / 托管)
1. 均提供 K8s 资源可视化界面(Pod、Deployment、Service 等)
2. 支持基本操作(创建、删除、编辑资源)
3. 兼容标准 K8s 集群(自建 / 托管)
1. 均提供 K8s 资源可视化界面(Pod、Deployment、Service 等)
2. 支持基本操作(创建、删除、编辑资源)
3. 兼容标准 K8s 集群(自建 / 托管)
核心差异多集群管理:支持跨云 / 混合云集群统一管控,集群模板快速复用
权限体系:细粒度 RBAC + 多租户隔离,支持 LDAP/SSO
生态集成:内置 CI/CD、监控(Prometheus)、日志(ELK)
商业支持:SUSE 提供企业级服务
本地化适配:深度集成阿里云 / 华为云等国内云厂商,合规性适配好
应用中心:内置国内常用中间件(Nacos、Seata)一键部署
开源免费:社区活跃,本地化文档丰富
轻量扩展:模块化设计,可按需启用功能
极简轻量:资源占用低,随 K8s 版本同步更新
官方原生:与 K8s 核心组件深度绑定
功能基础:仅支持基础资源操作,无高级特性
优势1. 多集群 / 多云管理能力行业领先
2. 企业级安全合规(审计、漏洞扫描)
3. 成熟商业支持,适合大规模集群
1. 国内环境适配佳,操作符合中文用户习惯
2. 开源免费,性价比高
3. 功能模块化,部署灵活
1. 轻量无依赖,集群资源占用极低
2. 官方维护,版本兼容性 100%
3. 部署简单,适合快速上手
劣势1. 界面复杂,新手学习成本高
2. 开源版部分高级功能受限
3. 国内云厂商适配略逊于 KubeSphere
1. 大规模集群管理能力弱于 Rancher
2. 商业支持不如 Rancher 成熟
3. 部分高级功能需手动配置
1. 功能简陋,无多租户、监控等企业级特性
2. 权限管理薄弱,安全性不足
3. 无社区支持,问题需自行解决
适用场景1. 中大型企业多集群 / 多云环境
2. 对安全合规、商业支持要求高的生产环境
3. 跨团队协作的复杂运维场景
1. 国内中小企业私有云 / 混合云集群
2. 需适配国内云厂商、开源免费的场景
3. 中小规模集群(10 个以内)管理
1. 个人学习、测试环境
2. 单集群简单监控与操作
3. 作为其他工具的辅助入口
小结强在 “规模化管控”,适合大型企业复杂场景,但需投入学习成本胜在 “本地化体验”,适合国内中小团队,平衡功能与成本赢在 “轻量原生”,适合入门或简单场景,生产环境需搭配其他工具
http://www.lryc.cn/news/598610.html

相关文章:

  • 从零用java实现 小红书 springboot vue uniapp(14) 集成阿里云短信验证码
  • Android安全存储:加密文件与SharedPreferences最佳实践
  • 【C++】使用箱线图算法剔除数据样本中的异常值
  • 进程通信----匿名管道
  • 【redis其它面试问题】
  • PHP 与 Vue.js 结合的前后端分离架构
  • 工具分享02 | Python批量文件重命名工具
  • 电商接口什么意思?
  • 数据所有权与用益权分离:数字经济时代的权利博弈与“商业机遇”
  • Claude Code是如何做上下文工程的?
  • Maven Scope标签:解锁Java项目依赖管理的秘密武器
  • [嵌入式embed]ST官网-根据指定固件名下载固件库-STSWSTM32054[STM32F10x_StdPeriph_Lib_V3.5.0]
  • 使用maven-shade-plugin解决依赖版本冲突
  • RCLAMP0504S.TCT 升特半导体TVS二极管 无损传输+军工防护+纳米护甲 ESD防护芯片
  • 陕西地区特种作业操作证考试题库及答案(登高架设作业)
  • Product Hunt 每日热榜 | 2025-07-24
  • 2025年人形机器人动捕技术研讨会于7月31日在京召开
  • 火语言 RPA 在日常运维中的实践
  • ESP32使用 vscode IDF 创建项目到烧录运行全过程
  • 优选算法:移动零
  • 使用ffmpeg转码h265后mac默认播放器不支持问题
  • Mac电脑使用IDEA启动服务后,报service异常
  • 从零构建 Node20+pnpm+pm2 环境镜像:基于 Dockerfile 的两种方案及持久化配置指南
  • 开源Qwen凌晨暴击闭源Claude!刷新AI编程SOTA,支持1M上下文
  • Vue3实现视频播放弹窗组件,支持全屏播放,音量控制,进度条自定义样式,适配浏览器小窗播放,视频大小自适配,缓冲loading,代码复制即用
  • 合泰单片机怎么样
  • idea监控本地堆栈
  • Linux系统监控模块之Zabbix7添加监控主机
  • 生成式人工智能展望报告-欧盟-03-经济影响
  • 第一二章笔记