Rancher集群添加用户权限报错connection refused原因及解决方案问询
问题触发原因
- rancher-webhook组件异常:
cattle-system命名空间下的rancher-webhookPod未正常运行,常见状态包括CrashLoopBackOff、Pending、已终止,导致服务端口未正常监听,无法响应请求。 - 集群内部网络故障:Kubernetes集群ClusterIP网段连通性异常,CNI插件故障、网络策略限制、节点间网络不通都会导致kube-apiserver无法访问rancher-webhook的ClusterIP 10.43.48.11的443端口。
- webhook配置损坏:rancher-webhook的服务证书过期、部署配置被误修改,都会导致服务启动后无法正常提供验证接口。
- 版本不兼容:Rancher版本升级后,rancher-webhook组件没有同步完成升级,新旧版本不兼容导致服务无法正常提供服务。
解决方案
第一步:排查rancher-webhook运行状态
执行命令查看Pod运行状态:kubectl get pods -n cattle-system -l app=rancher-webhook
- 如果Pod处于非Running状态,执行命令查看Pod日志定位根因:
kubectl logs -n cattle-system <替换为实际的rancher-webhook Pod名称>- 若为资源不足导致启动失败,调整Pod的resources.request和resources.limit配置即可
- 若为证书错误导致启动失败,删除现有webhook相关配置后等待Rancher自动重建即可,执行命令:
kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io rancher.cattle.io
- 如果Pod不存在,可手动卸载残留的webhook helm release后等待Rancher Operator自动重建:
helm uninstall rancher-webhook -n cattle-system
第二步:排查集群内部网络连通性
登录Kubernetes控制平面节点,执行命令测试webhook服务连通性:curl -v https://10.43.48.11:443
- 若连通失败,检查
cattle-system命名空间下是否存在限制443端口访问的NetworkPolicy,如有需要调整策略放通kube-apiserver到webhook的访问 - 检查集群CNI插件运行状态,确认所有节点的CNI组件都处于Running状态,节点之间网络无防火墙限制
第三步:版本升级后异常处理
如果问题出现在Rancher版本升级后,直接卸载当前的rancher-webhook组件,等待Rancher Operator自动安装匹配版本的组件即可:helm uninstall rancher-webhook -n cattle-system
临时应急方案
如果需要紧急配置权限,可临时删除验证webhook配置暂时关闭拦截,操作完成后要尽快恢复webhook服务:kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io rancher.cattle.io
内容的提问来源于stack exchange,提问作者hyj
相关产品推荐
相关产品推荐

