You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EKS集群Ingress未显示已创建ALB地址,External-DNS同步Route53异常求助

问题描述

在EKS集群里,我用AWS Load Balancer Controller自动给Ingress资源创建ALB(注解配置没问题,ALB确实创建成功了),但Ingress的ADDRESS字段是空的:

NAMESPACE              NAME            CLASS    HOSTS                                               ADDRESS   PORTS   AGE  
test-ns   test-ingress   <none>   *.example.com                             8080      1d  

同时External-DNS没法同步Route53记录,日志一直刷这些内容:

level=debug msg="No endpoints could be generated from service kube-system/core-dns"
level=debug msg="No endpoints could be generated from ingress test-ns/test-ingress"
level=debug msg="Refreshing zones list cache"
level=debug msg="Considering zone: /hostedzone/123123123123 (domain: example.com)"
level=info msg="Applying provider record filter for domains: [example.com]"
level=debug msg="Skipping endpoint *.example.com 300 IN CNAME  internal-alb-testing.us-west-1.elb.amazonaws.com [] because owner id does not match, found: \"\", required: \"externaldns\""
level=debug msg="Refreshing zones list cache"
level=debug msg="Considering zone: /hostedzone/123123123123 (domain: example.com)"
level=info msg="All records are already up to date"
level=debug msg="Refreshing zones list cache"
level=debug msg="Considering zone: /hostedzone/123123123123 (domain: example.com)"
level=info msg="All records are already up to date"
解决步骤

1. 先搞定Ingress的ADDRESS为空问题

ADDRESS字段没值,说明AWS Load Balancer Controller没把ALB地址同步到Ingress上,按下面排查:

  • 检查Ingress配置:如果是旧版本控制器,确认有kubernetes.io/ingress.class: alb注解;新版本要确保spec.ingressClassName设为alb,且集群里存在名为alb的IngressClass资源
  • 查看AWS Load Balancer Controller的Pod日志,找有没有同步Ingress的报错,比如权限不够、ALB配置冲突这类问题
  • 确认ALB状态是active,关联的目标组里后端Pod已经正常注册
  • 如果用的是私有ALB,要确保VPC的DNS解析已经开启,而且控制器有权限获取ALB的DNS名称

2. 处理External-DNS的owner id不匹配问题

日志里说因为owner id不匹配跳过了已有记录,而且没法生成Ingress端点,这么解决:

  • 确认External-DNS启动时加了--txt-owner-id=externaldns参数(和日志里要求的externaldns一致),这个参数是用来标记External-DNS管理的记录,防止误改其他记录
  • 如果Route53里已经有*.example.com的CNAME记录,而且没被External-DNS标记(要么没对应的TXT记录,要么TXT记录里的owner id不对),可以手动删掉这条记录,让External-DNS重新创建;或者修改现有记录的TXT记录,加上owner-id=externaldns
  • 检查External-DNS的权限,确保它能读取Ingress的status.loadBalancer.ingress字段(就是ADDRESS对应的后台数据),只有ADDRESS字段有值了,External-DNS才能生成正确的端点

3. 验证结果

  • 修复Ingress的ADDRESS字段后等几分钟,看External-DNS日志有没有生成Ingress的端点
  • 去Route53里检查,确认*.example.com的CNAME记录自动创建了,还有对应的TXT记录(标记owner id)
  • 测试域名解析,确认*.example.com能指向ALB的DNS地址

内容的提问来源于stack exchange,提问作者mmiara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 14:35:21