AWS EKS LoadBalancer类型服务EXTERNAL-IP显示Pending问题咨询
问题成因
- 首要高频原因:AWS对应区域负载均衡器配额耗尽
AWS账户默认每个区域的经典负载均衡器(CLB)配额为20,你在staging环境已经创建了12个CLB,生产环境前6个LB创建成功后,当前区域已使用的CLB数量接近配额上限,剩余配额不足导致后续LB创建流程卡住,状态停留在PENDING。 - 其他可能成因:
- 对应区域公网弹性IP(EIP)配额耗尽:如果你的LB是公网类型,创建时需要绑定EIP,EIP配额不足也会导致创建失败
- 子网可用IP不足:LB需要占用所在子网的私有IP地址,若子网剩余可用IP数量不足,无法为新LB分配地址
- 安全组相关配额耗尽:AWS默认每个LB会创建对应安全组,若账户的安全组、安全组规则配额达到上限,也会导致LB创建失败
- 集群IAM角色权限限制:虽然前6个LB创建成功,但部分IAM策略会限制同类型资源的最大创建数量,也可能触发该问题
排查与解决步骤
- 优先排查AWS配额
登录AWS控制台,进入「服务配额」页面,切换到集群所在区域,在EC2服务分类下分别查找「Classic Load Balancers per Region」、「Elastic IP addresses per VPC」、「Security groups per Region」三个配额项,确认已使用量是否接近配额上限。 - 查看K8s服务事件确认根因
对状态为PENDING的LoadBalancer服务执行命令:
kubectl describe service <你的服务名称>
查看输出中的Events字段,若返回QuotaExceeded类错误码,即可直接确认是对应资源配额不足导致的问题。
3. 解决方案
- 配额不足场景:在AWS服务配额页面提交对应资源的配额提升申请,填写你需要的配额数值,正常情况下AWS支持会在1-2个工作日内完成审核,审核通过后pending的LB会自动完成创建,无需手动重新部署。
- 临时紧急场景:删除staging或其他环境中闲置的LB、EIP、安全组资源,释放配额后,pending的LB会自动重试创建。
- 长期优化场景:部署Ingress Controller(如Nginx Ingress、ALB Ingress),统一用1个LB对外暴露多个服务,大幅降低LB资源的消耗量,避免后续再次触发配额问题。
- 非配额场景:根据
describe返回的具体事件报错对应处理,比如子网IP不足就扩容子网网段,IAM权限不足就补充对应资源的创建权限。
内容的提问来源于stack exchange,提问作者AzureFireIce
相关产品推荐
相关产品推荐

