EKS Ingress结合Route53与ELB配置失败,请求排查原因
问题描述
在EKS环境中配置子域名admin.test.com的Ingress后,未生成LoadBalancer,访问https://admin.test.com无法正常工作,相关配置如下:
Ingress配置
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: ingress-test annotations: nginx.ingress.kubernetes.io/rewrite-target: / kubernetes.io/ingress.class: "alb" alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip alb.ingress.kubernetes.io/group.name: staging-ingress-group alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:us-east-1:123456:certificate/abcdge-XXXXX alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]' alb.ingress.kubernetes.io/ssl-redirect: '443' alb.ingress.kubernetes.io/load-balancer-name: nginx-test-alb spec: rules: - host: admin.test.com http: paths: - path: / pathType: Prefix backend: service: name: nginx-test port: number: 80
Service配置
apiVersion: v1 kind: Service metadata: labels: app: nginx-test name: nginx-test spec: ports: - port: 80 protocol: TCP targetPort: 80 selector: app: nginx-test type: ClusterIP
Route53记录配置
cname-admin.test.com TXT=> heritage=external-dns,external-dns/owner=ZXXXXX,external-dns/resource=service/staging/nginx-test
可能的故障原因
- ALB Ingress Controller未正确部署:EKS集群不会自动创建ALB,必须确保AWS ALB Ingress Controller已安装并正常运行,且控制器拥有足够IAM权限(如创建ALB、Target Group、安全组等资源的权限)。若控制器未启动或权限不足,Ingress资源无法触发ALB创建。
- Ingress注解冲突:配置中同时使用了Nginx Ingress Controller专属注解
nginx.ingress.kubernetes.io/rewrite-target和AWS ALB Ingress Controller的kubernetes.io/ingress.class: "alb",两种控制器的注解混用会导致ALB控制器无法正确解析配置,进而忽略该Ingress资源。 - Ingress Group配置异常:使用
alb.ingress.kubernetes.io/group.name注解指定了Ingress组,若该组不存在或配置不符合要求,ALB控制器可能不会为单个Ingress创建ALB,而是等待同组其他Ingress资源,或因组配置错误无法生成负载均衡器。 - 后端Pod未就绪:Service的
selector: app: nginx-test未匹配到任何运行中的Pod,ALB控制器会判定后端服务不可用,可能不会创建ALB或Target Group。 - ACM证书问题:指定的ACM证书ARN存在异常,比如证书未完成域名验证、已过期、与
admin.test.com不匹配,或者证书所在区域与EKS集群区域不一致(ALB与ACM证书必须处于同一AWS区域),这些都会导致ALB创建失败。 - Route53记录配置逻辑错误:当前TXT记录关联的是Service资源,但实际应关联Ingress资源;且CNAME记录未正确指向ALB域名(当然这是ALB未创建的结果,但记录配置错误会导致后续域名解析失败)。
- Ingress资源存在错误事件:可通过
kubectl describe ingress ingress-test查看资源事件,排查是否存在控制器返回的权限不足、资源配额超限、网络配置错误等问题。
内容的提问来源于stack exchange,提问作者Aishwarya
相关产品推荐
相关产品推荐

