EKS Load Balancer Controller未创建负载均衡器问题求助
AWS Load Balancer Controller已创建但未生成负载均衡器的排查方案
核心排查步骤
查看控制器运行日志:直接定位错误根源,执行命令查看日志:
kubectl logs -n kube-system deployment/aws-load-balancer-controller重点关注
Failed to reconcile、AccessDenied、InvalidParameter这类关键词,这些信息会直接暴露权限缺失、参数错误等问题。验证ServiceAccount与IAM角色绑定:你指定了
serviceAccount.create=false,需确认aws-load-balancer-controller服务账号已正确关联具备ALB/NLB创建权限的IAM角色:- 检查IAM角色的信任策略,是否允许EKS集群的OIDC身份提供商访问;
- 确认IAM角色权限策略包含
elasticloadbalancing:*、ec2:Describe*、ec2:Create*(涉及VPC资源操作)、iam:CreateServiceLinkedRole等必要权限。
确认触发负载均衡器的资源存在:AWS Load Balancer Controller不会自动生成负载均衡器,必须由集群内的
Ingress(针对ALB)或Service(配置service.beta.kubernetes.io/aws-load-balancer-type: external针对NLB)触发:- 检查集群内是否存在这类资源;
- 确认资源注解配置正确,比如Ingress需添加
kubernetes.io/ingress.class: alb(v2版本也可使用alb.ingress.kubernetes.io/scheme: internet-facing)。
补充Helm配置的VPC参数:你的安装命令未指定VPC ID,控制器需要明确关联的VPC信息,建议补充参数重新安装:
helm upgrade aws-load-balancer-controller eks/aws-load-balancer-controller \ -n kube-system \ --set clusterName=LiveKit \ --set serviceAccount.create=false \ --set serviceAccount.name=aws-load-balancer-controller \ --set vpcId=你的VPC-ID检查节点网络访问权限:确认节点安全组允许出站HTTPS(443端口)访问AWS服务端点,控制器需要调用AWS API创建负载均衡器。
额外验证项
- 确认EKS集群已创建OIDC提供商:执行
aws eks describe-cluster --name LiveKit --query "cluster.identity.oidc.issuer",若返回有效OIDC地址则正常; - 检查控制器Pod状态:执行
kubectl get pods -n kube-system | grep aws-load-balancer-controller,确保Pod处于Running状态,无CrashLoopBackOff。
内容的提问来源于stack exchange,提问作者Elen Mouradian
相关产品推荐
相关产品推荐

