问题现象
当程序连接Nacos出现绑定的域名无法解析时,可能会有如下几种报错。
UnknownHostException
No route to host
Unable to resolve host
问题原因
应用节点所配置的DNS服务器或NameServer不正确,导致无法解析MSE域名。
容器未使用宿主机的DNS服务器或NameServer,或网络模式错误,导致无法解析MSE域名。
应用节点所配置的DNS服务器或NameServer故障,特别是Kubernetes集群所依赖的CoreDNS故障,导致无法解析MSE域名。
解决方案
使用ping命令
(1) 使用ping ${mse.nacos.host}指令尝试解析。
如果提示unknown host,则无法解析域名。
如果提示PING ${mse.nacos.host} (xxx.xx.xx.xx) bytes of data.,则解析成功。
(2) 如果执行ping命令无法正常解析,可查看文件/etc/resolv.conf的内容,获取DNS服务器和NameServer地址信息,尝试采用以下方式修复:
如果是通过Docker或Kubernetes部署,请退出到宿主机或Node上再次执行ping命令尝试解析。
如果解析成功,说明是网络模式错误或容器内外的DNS服务器和NameServer设置不同,尝试修改部署的网络模式,或将Node上的/etc/resolv.conf配置移植到容器中重试。
如果无法解析,请提工单联系技术支持协助排查域名解析失败的原因。
(3) 如果执行ping命令可以正常解析,且应用已经恢复不再出现异常,说明是DNS服务器或NameServer出现故障。