重新导入EKS集群后Grafana出现404错误:URL指向旧集群ID
问题:Rancher升级后重导入EKS集群,Grafana访问404且集群ID异常
环境信息
- Rancher版本:v2.11.1
- 安装方式:基于Docker的v1.27.11+k3s1
- Kubernetes版本:EKS 1.32
- 集群类型:导入的AWS EKS 1.32
问题详情
将Rancher从v2.9.2升级至v2.11.1后,删除并重新导入了EKS集群。此时访问Grafana组件出现以下问题:
- 页面返回404错误,URL包含新集群ID
- 点击左上角“Home”按钮可跳转,但URL仍保留旧集群ID
- 无法点击“Sign in”按钮进入正确登录页,无法进行Grafana配置
- 已升级Rancher及监控组件,问题未解决
复现步骤
- 在集群上安装监控组件
- 删除该集群后重新导入
- 尝试访问Grafana即可触发问题
实际结果
- 新集群ID的Grafana URL返回404
- 手动将URL替换为旧集群ID可正常访问,但新ID对应的登录页无法跳转
预期结果
可正常访问Grafana,登录页能正确跳转,可进行配置操作
解决方案
1. 彻底清理监控组件残留并重新安装
这是最直接的解决方式,清除旧集群关联的所有监控配置:
- 先卸载Rancher监控组件:在Rancher控制台进入集群的「Apps & Marketplace」,找到「Monitoring」组件并卸载
- 清理监控命名空间下的残留资源:
kubectl delete ns cattle-monitoring-system --force --grace-period=0 # 若需保留命名空间,可执行以下命令清理所有相关资源 kubectl delete all -n cattle-monitoring-system --all kubectl delete cm -n cattle-monitoring-system --all kubectl delete secret -n cattle-monitoring-system --all - 若已删除命名空间,重新创建
cattle-monitoring-system,然后重新安装监控组件
2. 更新Rancher内部集群关联映射
检查并删除Rancher管理集群中旧集群的残留记录:
- 在Rancher所在的管理集群中执行:
# 查看所有集群条目 kubectl get clusters.management.cattle.io -n fleet-default # 删除旧集群的条目(替换<old-cluster-name>为实际名称) kubectl delete clusters.management.cattle.io <old-cluster-name> -n fleet-default - 重启Rancher相关pod,确保新集群的关联信息被正确加载:
kubectl rollout restart deployment rancher -n cattle-system
3. 临时授予Grafana管理员权限(应急方案)
如果需要紧急操作Grafana,可以直接重置管理员密码并登录:
- 找到Grafana pod名称:
kubectl get pods -n cattle-monitoring-system | grep grafana - 进入pod并重置管理员密码:
kubectl exec -it <grafana-pod-name> -n cattle-monitoring-system -- bash grafana-cli admin reset-admin-password <new-admin-password> - 用新密码登录Grafana后,可检查并更新内部的集群关联配置
4. 检查并修正Grafana Ingress配置
确认Ingress路径是否硬编码了旧集群ID:
- 编辑Grafana的Ingress资源:
kubectl edit ingress grafana -n cattle-monitoring-system - 查看
spec.rules[].http.paths[].path字段,将其中的旧集群ID替换为新集群ID,保存退出后等待Ingress生效
内容的提问来源于stack exchange,提问作者Rainbird
相关产品推荐
相关产品推荐

