AWS Load Balancer Controller部署后Ingress未创建负载均衡求助
排查AWS Load Balancer Controller未创建ALB的问题
核心配置检查
TLS配置不匹配:你的Ingress TLS段中指定的
hosts: test.ones.com与rules中的q.test.ones.com、s.test.ones.com不匹配。启用TLS时,TLS块中的host必须覆盖所有rules里的域名,否则控制器可能无法正确关联证书,导致ALB创建失败。修正TLS配置:tls: - hosts: - q.test.ones.com - s.test.ones.com # 若已有对应ACM证书,可添加注解指定证书ARN # alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:region:account-id:certificate/cert-idIngress Class兼容性:对于Kubernetes 1.19+的Ingress v1 API,推荐使用
spec.ingressClassName替代旧的kubernetes.io/ingress.class注解,部分环境下旧注解可能无法被控制器识别。修改Ingress spec部分:spec: ingressClassName: alb tls: # ... 其余配置保持不变
后端服务状态验证
- 确认后端服务存在且有就绪端点:
如果服务无就绪端点,控制器会跳过ALB创建,因为没有可路由的目标资源。# 检查服务基本状态 kubectl get service q-service p-service # 检查端点是否就绪(ENDPOINTS列需显示非空的IP:Port) kubectl get endpoints q-service p-service
控制器日志排查
- 查看AWS Load Balancer Controller的实时日志,获取具体错误信息:
日志会明确提示失败原因(如权限不足、子网标签缺失、证书不存在等)。kubectl logs -n kube-system deployment/aws-load-balancer-controller --follow
基础设施与权限检查
VPC子网标签验证:确保EKS集群的公有子网带有以下标签(internet-facing模式必需):
kubernetes.io/cluster/<你的集群名称>: sharedkubernetes.io/role/elb: 1
控制器依赖这些标签自动选择子网创建ALB。
IAM权限确认:检查控制器绑定的IAM角色是否包含
AmazonEKSLoadBalancerControllerPolicy权限,确保具备创建ALB、Target Group、Listener等资源的权限。负载均衡名称冲突:检查AWS控制台中是否已存在名为
silq-alb的负载均衡,同名会导致创建失败,可修改alb.ingress.kubernetes.io/load-balancer-name注解的值。
内容的提问来源于stack exchange,提问作者GJoshi
相关产品推荐
相关产品推荐

