EKS中多Ingress绑定同一ALB规则不生效问题
EKS多Ingress共享ALB失败问题修复
核心原因:Ingress分组标识不统一
AWS ALB Ingress Controller依靠alb.ingress.kubernetes.io/group.name注解来将多个Ingress资源绑定到同一个ALB。你的两个Ingress配置中该注解值不一致:
- 主Ingress(alb-ingress.yaml):
alb.ingress.kubernetes.io/group.name: "alb-dev" - 应用Ingress(app.yaml):
alb.ingress.kubernetes.io/group.name: "alb-triercloud-dev"
这种不一致会让Controller将它们判定为两个独立的ALB分组,因此不会合并路由规则。
分步修复
统一分组名称
修改app.yaml中的group.name注解,使其与主Ingress完全一致:metadata: annotations: alb.ingress.kubernetes.io/group.name: "alb-dev"修正后端服务名称错误
app.yaml的Ingress规则里指定的后端服务是echoserver,但你实际部署的Service名称是app,这会导致路由失效,需要同步修正:rules: - host: service-a.devopsbyexample.io http: paths: - path: / pathType: Exact backend: service: name: app # 原名称为echoserver,改为实际Service名 port: number: 80可选:统一ALB名称配置
虽然group.name是核心关联字段,但建议保持alb.ingress.kubernetes.io/load-balancer-name在两个Ingress中一致,避免潜在的配置冲突。重新部署配置
执行以下命令更新集群资源:kubectl apply -f alb-ingress.yaml -n dev kubectl apply -f app.yaml -n dev验证规则同步
可以通过AWS控制台查看ALB的监听器规则,确认两个Ingress的路径都已添加;也可以查看ALB Controller的日志,确认配置同步成功。
额外注意事项
- 所有共享同一ALB的Ingress必须使用相同的
ingressClassName: alb group.order注解用于控制路由规则的优先级,数值越小优先级越高,可根据业务需求调整- 如果启用HTTPS,同组Ingress的SSL相关注解(如证书ARN)需保持一致
内容的提问来源于stack exchange,提问作者Lucas Fernandes
相关产品推荐
相关产品推荐

