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

Kubernetes中ALB Ingress返回503错误,无法关联后端服务求助

排查ALB Ingress返回503错误的步骤

结合你的配置和AWS ALB场景,按以下顺序逐一排查:

1. 修正命名空间不一致问题

你的Ingress部署在shortenurl-ingress命名空间,但Service和Deployment未指定命名空间(默认归属default命名空间)。跨命名空间的Ingress无法直接引用其他命名空间的Service,需做以下调整:

  • 方案一:给Service和Deployment添加metadata.namespace: shortenurl-ingress,将它们移至Ingress所在命名空间;
  • 方案二:在Ingress的Service引用中明确指定命名空间:
    backend:
      service:
        name: shortenerapp
        namespace: default
        port:
          number: 31674
    

2. 修复后端健康检查失败问题

ALB返回503最常见原因是目标组健康检查不通过:

  • 检查健康检查路径:你的Ingress路径是/api,但ALB默认健康检查路径为/,如果应用仅在/api路径返回正常响应,需添加Ingress注解指定健康检查端点:
    alb.ingress.kubernetes.io/healthcheck-path: /api/health
    
    (替换为你应用实际的健康检查路径)
  • 确认健康检查端口:因为你使用target-type: instance,ALB会访问节点的NodePort(31674),需确保EKS节点安全组允许ALB安全组访问该端口。

3. 验证Service与Pod的关联状态

执行以下命令检查Service是否正确关联到Pod:

kubectl get endpoints shortenerapp

如果输出中没有Pod的IP地址,说明关联失效(大概率是命名空间不匹配导致)。

4. 检查安全组配置

  • ALB安全组eks-cluster-sg-shortener-eks-895573458已配置允许全量入站流量,无需调整;
  • EKS节点安全组需开放NodePort(31674)给ALB安全组,否则ALB无法将流量转发至后端节点。

5. 确认Pod自身运行状态

执行命令查看Pod状态和应用日志:

kubectl get pods
kubectl logs <pod-name>

确保Pod处于Running状态,且应用在5001端口正常监听,直接访问http://<pod-ip>:5001/api能返回正常响应。

内容的提问来源于stack exchange,提问作者Muhammad Fuad Ariqoh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:55:16