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

Docker Desktop Windows部署Ingress Nginx时apply YAML遇连接拒绝错误

解决Ingress Nginx Webhook连接拒绝错误

问题重现

来自服务器的错误(InternalError):创建"ingress-srv.yaml"时出错:发生内部错误:调用webhook "validate.nginx.ingress.kubernetes.io"失败:调用webhook失败:Post "https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s":dial tcp 10.97.138.229:443: connect: connection refused

在Windows版Docker Desktop上完成Ingress Nginx搭建后,执行kubectl apply -f ingress-srv.yaml时出现上述错误,yaml配置如下:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-srv
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
    - host: posts.com
      http:
        paths:
         - path: /posts
           pathType: Prefix
           backend:
             service:
               name: posts-srv
               port:
                 number: 4000

解决方法

方法1:检查Ingress Nginx控制器状态

先确认Ingress Nginx的Pod是否正常运行:

kubectl get pods -n ingress-nginx

如果Pod处于Pending、CrashLoopBackOff状态,先排查Pod启动失败原因(比如资源不足、镜像拉取失败),等待Pod正常进入Running状态后再重新执行apply命令。

方法2:临时禁用Ingress Webhook验证

测试环境下可临时禁用webhook验证绕过问题:
修改ingress-srv.yaml,添加禁用验证的注解:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: ingress-srv
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/validate-webhook: "false" # 添加此行
spec:
  rules:
    - host: posts.com
      http:
        paths:
         - path: /posts
           pathType: Prefix
           backend:
             service:
               name: posts-srv
               port:
                 number: 4000

修改后重新执行kubectl apply -f ingress-srv.yaml。

方法3:重新安装Ingress Nginx控制器

若控制器本身安装存在问题,可卸载后重新部署:

# 卸载现有Ingress Nginx组件
kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission
helm uninstall ingress-nginx -n ingress-nginx

# 重新安装官方Ingress Nginx
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
helm install ingress-nginx ingress-nginx/ingress-nginx -n ingress-nginx --create-namespace

等待所有Pod启动完成后,再尝试应用Ingress配置。

方法4:检查Docker Desktop Kubernetes资源配置

确保Docker Desktop的Kubernetes已启用,且资源分配足够(建议CPU至少2核,内存至少2GB):
打开Docker Desktop设置 -> Kubernetes,确认"Enable Kubernetes"已勾选,调整资源分配后重启Docker Desktop。


内容的提问来源于stack exchange,提问作者Hjaij Houssem

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 03:11:50