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

Windows Docker Desktop下NGINX Ingress访问404问题求助(非minikube)

排查解决步骤
    1. 补全IngressClass配置
      你输出的Ingress资源CLASS字段为<none>,是ADDRESS为空的核心原因。首先执行命令查询集群现存IngressClass:
    kubectl get ingressclass
    

    正常Docker Desktop环境安装的nginx-ingress会默认存在名为nginx的IngressClass,你可以选择两种方式修复:

    • 方式一:修改Ingress资源定义,在spec下新增ingressClassName: nginx字段
    • 方式二:将nginx设为集群默认IngressClass,所有未指定class的Ingress会自动绑定:
      kubectl annotate ingressclass nginx ingressclass.kubernetes.io/is-default-class=true
      
    1. 校验Ingress路由规则正确性
      确保你的Ingress规则中路径、后端服务配置匹配你的业务服务,参考正确配置示例:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: example-ingress
    spec:
      ingressClassName: nginx
      rules:
      - host: hello-world.info
        http:
          paths:
          - path: /
            pathType: Prefix
            backend:
              service:
                name: web
                port:
                  number: 8080
    

    若路径配置不匹配(例如只配置了/test路径但访问根路径),就会返回404错误。

    1. 确认访问方式正确
      通过Ingress访问服务时,不需要携带NodePort端口31429,直接访问http://hello-world.info即可。Docker Desktop环境的nginx-ingress控制器默认已经将80端口映射到本地127.0.0.1的80端口,只要你hosts文件配置127.0.0.1 hello-world.info即可正常解析。
    1. 验证配置生效
      配置修改完成后等待1分钟左右,执行kubectl get ingress,正常ADDRESS字段会显示为localhost,此时即可正常访问服务。如果仍有问题,可查看nginx-ingress控制器日志排查具体错误:
    kubectl logs -n ingress-nginx deployment/ingress-nginx-controller
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:36:04