Minikube环境Nginx Ingress无法找到服务端点返回502/404问题求助
故障根因定位与解决方案
首先明确:服务类型为LoadBalancer不是故障原因,Ingress控制器访问集群内服务时依赖Service的ClusterIP,和Service是LoadBalancer/NodePort/ClusterIP类型无关。
解决步骤按优先级执行:
移除错误配置的rewrite注解
你之前添加的nginx.ingress.kubernetes.io/rewrite-target: /$1属于错误配置,匹配规则path: /下无分组参数传递给$1,反而会导致路径 rewrite 异常出现404,先删除该注解,恢复Ingress初始配置。验证Pod就绪状态
执行命令检查业务Pod状态:
kubectl get pods -l app=online
确认输出READY列为2/2(业务容器+Dapr Sidecar都就绪),若就绪状态异常,Endpoint不会被关联到Service,就会出现Ingress日志提示的无活跃Endpoint报错。
- 验证集群内Service连通性
启动临时Pod测试集群内部是否能正常访问Service:
kubectl run -it --rm --image=curlimages/curl test -- curl http://online.default.svc.cluster.local:8080/userOnline
如果该请求返回异常,说明Service到Pod的链路存在问题,优先排查Service selector配置、Pod端口监听、网络策略拦截问题;如果请求正常返回OK,说明问题出在Ingress控制器链路。
- 刷新Ingress控制器缓存
Ingress控制器缓存未及时更新也会出现找不到Endpoint的报错,执行命令重启Ingress控制器:
kubectl rollout restart deployment -n ingress-nginx ingress-nginx-controller
等待Pod重启完成后,再次执行curl online/userOnline测试。
- 检查Ingress绑定IP正确性
执行命令获取Ingress的实际地址:
kubectl get ingress online-ingress
确认输出的ADDRESS字段和你写入/etc/hosts的192.168.49.2一致,不一致则修改hosts绑定关系。
内容的提问来源于stack exchange,提问作者tanxin
相关产品推荐
相关产品推荐

