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

EKS部署ALB Ingress报错无法自动发现子网问题咨询

EKS部署Ingress触发子网自动发现失败报错排查方案

问题现象

在AWS EKS集群中部署Ingress资源时触发报错:
ingress Failed build model due to couldn't auto-discover subnets: unable to discover at least one subnet

已完成前置校验

  • 已确认Deployment部署文件中填写的集群名称准确无误
  • 已在Ingress资源定义中配置如下注解:
alb.ingress.kubernetes.io/scheme: internal
alb.ingress.kubernetes.io/target-type: ip
kubernetes.io/ingress.class: alb
kubernetes.io/role/internal-elb: 1
alb.ingress.kubernetes.io/subnets: subnet-xxxx, subnet-yyy, subnet-zzz
kubernetes.io/cluster/<ClusterName>: owned

注:上述注解中<ClusterName>已替换为实际集群名称,校验无误

  • 当前使用EKS私有子网,子网为独立创建,已按官方要求配置对应子网标签,仍复现报错

根因排查与解决方案

按优先级从高到低排查以下问题点:

  • 修正子网注解的格式错误
    当前配置的alb.ingress.kubernetes.io/subnets字段值存在格式问题:子网ID之间的英文逗号后不能加多余空格,现有错误写法subnet-xxxx, subnet-yyy, subnet-zzz会导致控制器解析子网ID时把空格带入字符串,匹配不到真实存在的子网。将该字段值修改为subnet-xxxx,subnet-yyy,subnet-zzz即可解决该类解析错误。
  • 校验AWS Load Balancer Controller的IAM权限
    确认集群内运行的AWS Load Balancer Controller所绑定的IRSA IAM角色,已包含ec2:DescribeSubnets、ec2:DescribeRouteTables、ec2:DescribeVpcs的操作权限。权限缺失时,即使注解中硬编码子网ID,控制器也无法调用AWS API校验子网元数据,触发子网发现失败报错。
  • 校验子网标签的精确匹配性
    逐个子网核对标签键值,确保完全符合要求,无拼写、大小写偏差:
    1. 内部ALB使用的私有子网必须携带标签kubernetes.io/role/internal-elb=1,标签值为字符串格式的1
    2. 所有关联子网必须携带kubernetes.io/cluster/<实际集群名称>=owned或shared标签,标签键中的集群名大小写必须和EKS控制台展示的集群名完全一致
    3. 确认子网关联的路由表存在有效路由(私有ALB场景下需存在指向NAT网关的路由,公网ALB场景需存在指向互联网网关的路由),控制器会校验子网的路由配置有效性
  • 校验控制器版本兼容性
    若EKS集群版本为1.24及以上,使用v2.4以下版本的AWS Load Balancer Controller会存在子网发现逻辑兼容问题,将控制器升级到v2.5及以上稳定版本即可修复该类偶发报错。
  • 重载控制器配置生效
    完成上述修改后,执行命令kubectl rollout restart deployment -n kube-system aws-load-balancer-controller重启控制器Pod,待Pod全部处于Running状态后重新应用Ingress资源即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:18:20