EKS 1.2x环境下Nginx-ingress无法创建NLB问题求助
排查方向建议
1. 检查Ingress Controller Pod状态与日志
- 执行
kubectl get pods -n ingress-nginx确认Pod是否处于Running状态,排查是否存在CrashLoopBackOff等异常 - 查看Pod日志:
kubectl logs -n ingress-nginx <ingress-controller-pod-name>,重点关注AWS API调用失败、权限不足、VPC资源操作失败类报错
2. 验证IAM权限配置
- 确认Ingress Controller绑定的ServiceAccount对应的IAM角色,是否具备创建/管理NLB、Target Group、Security Group的权限(如
elasticloadbalancing:*、ec2:CreateSecurityGroup、ec2:DescribeVpcs等核心权限) - 检查IAM角色的信任关系,是否正确允许EKS OIDC提供商的ServiceAccount进行AssumeRole操作
3. 核对VPC与子网配置
- 确认集群VPC CIDR配置正确,且Ingress Controller使用的子网带有符合要求的标签(如
kubernetes.io/role/elb: 1或kubernetes.io/role/internal-elb: 1) - 检查每个可用区是否至少有一个符合标签的子网,NLB需要跨可用区创建
- 验证子网路由表是否配置了互联网网关(公网NLB)或NAT网关(私网NLB)路由,确保AWS API可正常访问子网资源
4. 检查Ingress Controller部署参数
- 确认部署时是否正确设置NLB相关注解,如
service.beta.kubernetes.io/aws-load-balancer-type: nlb,以及证书ARN、VPC ID等参数 - 执行
kubectl describe svc -n ingress-nginx ingress-nginx-controller查看Service事件,排查是否有负载均衡控制器返回的错误信息 - 确认Service类型为
LoadBalancer,关键启动参数(如--enable-ssl-passthrough)配置正确
5. 检查AWS Load Balancer Controller状态
- 若使用AWS官方负载均衡控制器,确认其Pod处于正常运行状态,查看日志排查资源处理异常
- 排查是否存在控制器版本冲突(如同时部署ingress-nginx自带控制器与AWS官方控制器)
6. 验证EKS OIDC提供商配置
- 执行
aws eks describe-cluster --name <cluster-name> --query "cluster.identity.oidc.issuer"确认OIDC issuer存在,否则IAM角色无法与ServiceAccount绑定
7. 排查资源配额与服务限制
- 在AWS控制台Service Quotas中,检查NLB、Target Group等资源的配额是否用尽
- 检查EKS集群的资源配额,确认未限制
LoadBalancer类型Service的创建
8. 确认证书有效性
- 验证指定的ACM证书ARN存在、状态为
Issued,且证书区域与集群区域一致
内容的提问来源于stack exchange,提问作者user20225942
相关产品推荐
相关产品推荐

