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

在GKE部署Next.js SSR微服务时Ingress Nginx URL问题解决

问题:GKE中通过Ingress Nginx访问认证微服务出现404或域名解析失败

我正在运行一个基于Next.js服务端渲染(SSR)的微服务项目,使用Ingress Service将请求转发至正确的微服务和路由。应用首次加载时,App组件的getInitialProps方法会向认证微服务发起请求,以告知客户端当前是否有已登录用户。

本地环境中,我将Ingress Nginx安装在ingress-nginx命名空间下,对应的服务名为ingress-nginx-controller,使用http://ingress-nginx-controller.ingress-nginx.svc.cluster.local访问认证微服务,运行正常。

但在Google Kubernetes Engine(GKE)中通过Helm安装Ingress Nginx(命令:

helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm install my-release ingress-nginx/ingress-nginx

)时,它被安装在default命名空间,服务名为my-release-ingress-nginx-controller。使用http://my-release-ingress-nginx-controller.default.svc.cluster.local访问时出现404错误,尝试去掉命名空间使用http://my-release-ingress-nginx-controller.svc.cluster.local则报错Error: getaddrinfo ENOTFOUND。


解决方案

1. 校验Ingress资源路由规则

404错误核心原因大概率是Ingress规则未匹配请求路径,需重点检查:

  • 确认Ingress的spec.rules中配置了正确的路径规则,指向认证微服务的Service;若使用了host字段,需保证访问时的Host头和配置一致。
  • 执行kubectl describe ingress <你的Ingress名称>,查看Ingress的事件记录和后端关联状态,确认是否成功绑定到认证微服务的Service。

2. 排查后端服务的连通性

先绕过Ingress直接验证服务本身是否正常:

  • 直接访问认证微服务的ClusterIP地址或内部Service地址(如http://auth-service.default.svc.cluster.local,需替换为实际服务名和命名空间),确认服务能正常响应请求。
  • 执行kubectl port-forward service/my-release-ingress-nginx-controller 8080:80 -n default,在本地通过localhost:8080访问认证路径,排查Ingress控制器本身的转发逻辑是否正常。

3. 修正集群内服务访问地址格式

集群内跨命名空间访问服务必须携带完整的命名空间后缀:

  • http://my-release-ingress-nginx-controller.svc.cluster.local解析失败是因为Kubernetes默认只会在当前Pod所在命名空间查找服务,必须加上.default后缀才能正确寻址到default命名空间下的Ingress服务。

4. 统一Ingress Nginx的安装命名空间

建议将Ingress Nginx安装到独立的ingress-nginx命名空间,和本地环境保持一致,减少配置差异:

helm install my-release ingress-nginx/ingress-nginx --namespace ingress-nginx --create-namespace

之后使用http://my-release-ingress-nginx-controller.ingress-nginx.svc.cluster.local访问,和本地环境的访问方式统一。

5. 查看Ingress控制器日志定位问题

执行以下命令查看Ingress Nginx控制器的日志,里面会记录请求转发的详细过程,帮助定位是路径匹配错误、后端服务不可达还是其他异常:

kubectl logs deployment/my-release-ingress-nginx-controller -n default

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:33:31