Route 53指向Kubernetes中AWS ELB时域名无法访问问题排查
下面是针对该问题的具体排查方向:
验证DNS解析是否生效
用终端执行nslookup equinox.nematix.com或dig equinox.nematix.com,检查返回的IP地址是否和ELB的公网IP完全一致。如果不一致,要么是Route53的记录还在生效等待期(看你设置的TTL值,默认可能是300秒,需要等缓存过期),要么是记录配置错误。检查ELB安全组配置
你已经放开了EC2实例的流量,但ELB自身的安全组才是公网流量的入口。确认ELB的安全组允许0.0.0.0/0访问你服务对应的端口(比如80端口用于HTTP,443用于HTTPS)。如果ELB安全组只开放了内部IP段,公网通过域名访问就会被拦截。确认ELB健康检查状态
登录AWS控制台查看ELB的健康检查结果:如果后端EC2实例的健康状态是不健康,ELB会拒绝转发流量。检查健康检查的端口、路径是否和你的应用配置匹配(比如应用监听8080端口,健康检查就不能设成80),同时确保应用的健康检查路径能正常返回200状态码。替换A记录为CNAME记录
Kubernetes创建的ELB属于AWS的弹性负载均衡,其公网IP可能会动态变更。你当前用A记录绑定固定IP的方式不可靠,建议改成CNAME记录,将equinox.nematix.com指向ELB的完整域名(类似xxx.us-east-1.elb.amazonaws.com这种格式),这样即使ELB IP变化,域名也能自动解析到正确地址。刷新本地DNS缓存
本地设备可能缓存了旧的DNS记录,导致解析错误。执行对应系统的刷新命令:- Windows:
ipconfig /flushdns - Mac:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder - Linux:
sudo systemctl restart systemd-resolved(根据发行版调整)
- Windows:
核对Route53托管区配置
确认nematix.com的托管区NS记录已正确指向Route53提供的域名服务器,同时检查equinox.nematix.com的记录集没有重复配置(比如同时存在A记录和CNAME记录),路由策略也没有设置错误的规则。
内容的提问来源于stack exchange,提问作者Fathul Amin

