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

AWS EKS配置ALB Ingress多路径路由访问返回404错误修复咨询

问题根因与修复方案

你遇到的404错误由以下几个常见配置错误导致,按优先级排查修复即可:

1. 全局健康检查端口配置错误

你当前在Ingress全局注解中写死了健康检查端口为8012,但另外两个后端服务ee-pe、ee-um的服务端口分别是8013、8014,ALB会使用8012端口检查这两个服务的健康状态,必然检查失败,ALB会判定后端不健康、拒绝转发流量,从而返回404。

修复方法

删除Ingress全局注解中的alb.ingress.kubernetes.io/healthcheck-port: '8012'配置,改为给每个Service资源单独配置对应健康检查参数:

  • 给ee-rwdsService添加注解:alb.ingress.kubernetes.io/healthcheck-port: '8012'
  • 给ee-peService添加注解:alb.ingress.kubernetes.io/healthcheck-port: '8013'
  • 给ee-umService添加注解:alb.ingress.kubernetes.io/healthcheck-port: '8014'

若不同服务的健康检查路径不一样,也可以单独给对应Service配置alb.ingress.kubernetes.io/healthcheck-path注解。

2. 路径前缀未重写导致后端路由匹配失败

AWS Load Balancer Controller默认会将完整请求路径原封不动转发给后端服务:比如你访问ALB地址/rwds/api/getInfo,转发到ee-rwds服务的路径就是/rwds/api/getInfo,但你直接访问服务时用的是服务IP:8012/api/getInfo不带/rwds前缀,后端服务没有对应前缀的路由就会返回404。

修复方法

在Ingress的annotations中添加路径重写注解,匹配路径的*部分作为转发路径:

alb.ingress.kubernetes.io/rewrite-target: /$1

3. Ingress版本与路径匹配规则问题

你当前使用的networking.k8s.io/v1beta1版本Ingress在K8s 1.19及更高版本中已废弃,路径匹配规则可能不兼容。建议升级为networking.k8s.io/v1版本的Ingress配置,明确指定路径类型:

修复后的Ingress配置示例

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  namespace: ee-be
  name: ee-ingress
  annotations:
    kubernetes.io/ingress.class: "alb"
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/rewrite-target: /$1
    # 全局健康检查公共配置,端口、路径按服务单独配在Service上
    alb.ingress.kubernetes.io/healthcheck-protocol: HTTP
    alb.ingress.kubernetes.io/healthcheck-interval-seconds: '15'
    alb.ingress.kubernetes.io/healthcheck-timeout-seconds: '5'
    alb.ingress.kubernetes.io/success-codes: '200'
    alb.ingress.kubernetes.io/healthy-threshold-count: '2'
    alb.ingress.kubernetes.io/unhealthy-threshold-count: '2'
spec:
  rules:
    - http:
        paths:
          - path: /rwds/*
            pathType: Prefix
            backend:
              service:
                name: ee-rwds
                port:
                  number: 8012
          - path: /point/*
            pathType: Prefix
            backend:
              service:
                name: ee-pe
                port:
                  number: 8013
          - path: /user-mgt/*
            pathType: Prefix
            backend:
              service:
                name: ee-um
                port:
                  number: 8014

验证方式

配置更新完成后,登录AWS控制台查看对应ALB的Target组,确认所有Target组的健康状态为Healthy后再测试访问即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 21:27:03