Rancher 2.7.5部署后用户控制器启动失败:缺失cattle-global-data密钥
解决方案:Rancher用户控制器启动失败(secrets "cattle-global-data/" not found)
问题分析
报错核心是Rancher依赖的核心配置secret cattle-global-data 缺失,导致用户控制器无法完成初始化流程。
解决步骤
1. 检查secret状态
先确认cattle-system命名空间下是否存在该关键secret:
kubectl get secrets -n cattle-system | grep cattle-global-data
如果无输出结果,说明该secret未正常生成,需要重新部署Rancher。
2. 重新部署Rancher
彻底清理现有Rancher资源后重新安装:
# 卸载Rancher Helm实例 helm uninstall rancher -n cattle-system # 清理cattle-system命名空间(可选,确保无残留资源) kubectl delete namespace cattle-system # 重新创建命名空间并安装Rancher kubectl create namespace cattle-system helm upgrade --install rancher rancher-stable/rancher --namespace cattle-system --version=2.7.5 --set hostname=rancher.xxx.com --set ingress.tls.source=letsEncrypt --set letsEncrypt.ingress.class=nginx --set ingress.ingressClassName=nginx
3. 验证Ingress Controller配置
确保Ingress Nginx控制器运行正常,且Rancher的Ingress配置正确关联:
# 检查Ingress Controller Pod状态 kubectl get pods -n ingress-nginx # 验证Rancher Ingress的class配置 kubectl get ingress rancher -n cattle-system -o jsonpath='{.spec.ingressClassName}'
输出结果应为nginx,与Ingress Controller的class保持一致。
4. 确认修复效果
查看Rancher主Pod日志,确认无报错信息:
kubectl logs -n cattle-system -l app=rancher --tail=50
同时检查用户控制器Pod是否正常运行:
kubectl get pods -n cattle-system -l component=user-controller
可能的根因
- 安装过程中网络波动,导致secret生成流程中断
- Ingress Controller配置错误,影响Rancher初始化步骤
- Helm安装参数中
ingressClassName设置不符合集群实际配置
内容的提问来源于stack exchange,提问作者AniketGole
相关产品推荐
相关产品推荐

