You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes创建Ingress时报validate.nginx.ingress.kubernetes.io无路由错误

根本原因

你提供的Deployment、Service、Ingress资源配置语法符合K8s规范,报错来源于集群层面的nginx ingress准入校验链路异常,具体原因如下:

  • nginx ingress controller自带的准入校验webhook对应的服务后端不稳定:ingress-nginx命名空间下的ingress-nginx-controller-admission服务关联的Pod存在频繁重启、调度异常的情况,当你提交Ingress请求时,如果刚好碰到admission Pod不可用,就会报no route to host错误,重试时如果Pod刚好恢复正常就能创建成功,修改Deployment重新触发校验时如果Pod再次异常就会复现报错。
  • 集群网络链路偶发故障:kube-apiserver到admission Service的网络存在间歇性不通的情况,比如节点防火墙规则误拦截443端口流量、网络插件(Calico/Flannel等)的路由规则更新不及时、Service对应的Endpoint漂移时网络规则没有同步完成,都会导致偶发的连通失败。
  • 准入webhook的默认失败策略为强制拒绝:nginx ingress的校验webhook默认failurePolicy配置为Fail,只要webhook调用失败就会直接拒绝Ingress的创建/更新请求,放大了偶发故障的影响。
解决方案

临时规避方案(快速恢复业务)

如果需要先完成资源部署,可以临时删除准入校验webhook配置,跳过校验逻辑,该操作不会影响Ingress的正常转发功能:

kubectl delete validatingwebhookconfigurations.admissionregistration.k8s.io ingress-nginx-admission

永久修复方案

  1. 排查admission组件运行状态
    执行以下命令检查admission相关Pod的运行状态:
kubectl get pods -n ingress-nginx | grep admission

如果Pod存在重启、异常退出的情况,查看Pod日志排查崩溃原因:

kubectl logs -n ingress-nginx <替换为admission pod的名称>

如果是资源不足导致的崩溃,给admission容器增加CPU、内存配额;如果是调度异常导致的Pod频繁漂移,给Pod添加nodeSelector固定调度到稳定的节点。

  1. 排查集群网络连通性
    首先确认admission Service对应的Endpoint是否正常:
kubectl get endpoints -n ingress-nginx ingress-nginx-controller-admission

确认输出的IP和端口对应正常运行的admission Pod的IP和端口,再登录kube-apiserver所在节点测试连通性:

curl -v https://<替换为admission服务的ClusterIP>:443 --insecure

如果连通失败,检查节点的iptables、firewalld、ufw规则是否拦截了443端口的跨节点流量,同时排查网络插件的路由规则是否正常同步。

  1. 调整webhook失败策略(可选)
    如果集群网络偶发抖动无法彻底消除,可以修改webhook的失败策略为忽略,webhook调用失败时直接放行请求,不会阻塞资源创建:
kubectl edit validatingwebhookconfigurations.admissionregistration.k8s.io ingress-nginx-admission

将配置中的failurePolicy: Fail修改为failurePolicy: Ignore后保存即可。

内容的提问来源于stack exchange,提问作者andreas.teich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 13:57:02