Rancher 2.5.10通过RKE添加现有节点集群时webhook调用超时如何解决?
Rancher 2.5.10 RKE使用现有节点创建集群webhook超时问题排查修复方案
排查步骤
- 检查rancher-webhook服务运行状态
登录Rancher本地管理集群,执行命令kubectl get pods -n cattle-system | grep rancher-webhook,确认Pod是否处于Running状态,是否存在重启、CrashLoopBackOff等异常;再执行kubectl get svc -n cattle-system rancher-webhook,确认服务端口配置正常,ClusterIP分配无误。 - 验证集群内部网络连通性
登录Rancher管理集群的控制平面节点,执行curl -v https://rancher-webhook.cattle-system.svc:443/healthz,验证控制节点到webhook服务的连通性,如果请求超时说明集群内部DNS解析、Service网络存在异常;再执行kubectl get pods -n kube-system | grep coredns确认CoreDNS服务运行正常,也可以启动临时测试Pod执行nslookup rancher-webhook.cattle-system.svc验证域名解析是否正常。 - 检查webhook配置与集群负载
执行kubectl get validatingwebhookconfigurations.admissionregistration.k8s.io rancher.cattle.io -o yaml | grep timeoutSeconds,确认webhook配置的超时时间是否为默认的10s,Rancher 2.5.x版本在节点规模较大的场景下10s超时阈值可能不足;同时执行kubectl top nodes检查管理集群节点的CPU、内存资源占用情况,资源瓶颈会导致webhook请求处理延迟过高触发超时。
修复方案
- 重启异常rancher-webhook服务
如果排查发现webhook Pod状态异常,执行kubectl rollout restart deployment rancher-webhook -n cattle-system,等待Pod全部重建完成后重试集群创建操作即可。 - 调整webhook超时阈值
大集群场景下超时时间不足的,执行kubectl edit validatingwebhookconfigurations.admissionregistration.k8s.io rancher.cattle.io,找到timeoutSeconds字段,将默认的10修改为30,保存配置后重试。 - 修复集群内部网络异常
如果是CoreDNS解析异常导致的,执行kubectl rollout restart deployment coredns -n kube-system重启DNS服务;如果是CNI插件异常导致的Service网络不通,检查对应Calico/Flannel的Pod运行状态,重启异常的CNI实例即可恢复连通性。 - 临时禁用webhook(仅紧急场景使用)
如果webhook服务完全不可用且需要紧急创建集群,可临时删除webhook配置:kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io rancher.cattle.io,集群创建完成后重新安装rancher-webhook组件恢复校验能力即可。
内容的提问来源于stack exchange,提问作者Bharath Reddy
相关产品推荐
相关产品推荐

