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

WSL2+Windows环境KinD集群Ingress无法通过hostPort访问问题

问题根本原因
  • KinD是本地轻量化K8s发行版,默认没有集成云厂商的LoadBalancer负载均衡实现组件,因此你看到的ingress-nginx-controller服务为LoadBalancer类型、External-IP始终处于<Pending>状态是默认环境下的正常表现,不是故障本身。
  • 你配置的extraPortMappings规则作用是将Windows宿主机的5180/51443端口,映射到KinD控制平面节点容器的80/443端口,但你通过Helm安装的Ingress NGINX控制器默认没有监听节点本地的80/443端口,而是通过NodePort类型的随机端口(你输出里的30674/30800)暴露服务,流量根本没有走到节点的80/443端口上,自然无法通过映射的宿主机端口访问。
  • WSL2+Docker Desktop架构存在双层网络转发:Windows宿主机->WSL2虚拟机->Docker容器,任意一层的端口转发规则未自动同步,都会导致localhost访问失败。
  • 你给控制平面节点打了ingress-ready=true标签,但如果Ingress控制器Pod没有被调度到这个节点上,即使配置了HostPort也无法生效。
排查与修复步骤
  1. 重新配置Ingress NGINX控制器,适配KinD的端口映射规则
    卸载原有不符合配置的Ingress控制器后,通过Helm重新安装时追加以下参数,强制控制器以HostPort模式监听节点80/443端口,并且调度到打了对应标签的控制平面节点上:
helm upgrade --install ingress-nginx ingress-nginx \
  --namespace ingress-nginx --create-namespace \
  --set controller.hostPort.enabled=true \
  --set controller.service.type=NodePort \
  --set controller.nodeSelector.ingress-ready=true \
  --set controller.publishService.enabled=false

安装完成后执行以下命令,进入KinD控制平面容器验证端口监听状态,替换命令中<kind-control-plane容器名>为你实际的控制平面容器名称(可通过docker ps查看):
docker exec -it <kind-control-plane容器名> ss -tulpn | grep -E ':(80|443)'
正常返回结果中可以看到nginx进程在0.0.0.0:80、0.0.0.0:443上处于监听状态。

  1. 分层验证网络连通性

    • 第一步先进入WSL2终端,执行curl http://localhost:5180验证WSL2层是否能正常访问服务。如果WSL2内访问正常、Windows侧访问失败,说明是Docker Desktop的WSL2端口转发规则失效,重启Docker Desktop即可恢复,必要时可以手动在Windows防火墙添加端口放行规则。
    • 如果WSL2内也无法访问,执行kubectl get pods -n ingress-nginx -o wide确认Ingress控制器Pod确实运行在打了ingress-ready=true标签的控制平面节点上,没有调度到worker节点。
  2. 校验Ingress资源配置
    执行kubectl describe ingress <你的自定义Ingress资源名>,查看事件栏是否存在配置报错:

    • 确认ingressClassName字段值为nginx,和安装的控制器匹配
    • 确认后端关联的服务、端口配置正确,端点列表中存在正常运行的Pod IP,不存在BackendNotFound类的报错
    • 确认你访问的域名和Ingress规则中配置的host字段匹配,测试时可以通过curl -H "Host: 你配置的域名" http://localhost:5180指定Host头访问。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:19:07