我在同一个名称空间中有两个独立的集群(Application和DB)。DB集群的Statefulset和Application集群的Deployment。对于内部通信,我已经配置了一个无头服务。当我从应用程序集群中的pod ping到服务时,它会工作(也可以反过来工作- DB pod到服务工作)。但有时,例如,如果我连续执行ping命令3次,第三次它会给出一个错误-&;ping::名称解析临时失败&;. 为什么会发生这种情况?
据我所知,这通常是一个名称解析错误,并表明您的DNS服务器无法将域名解析为各自的IP地址。这可能会带来严重的挑战,因为您将无法在Linux系统上更新、升级甚至安装任何软件包。这里我列出了一些原因
1。resolv.conf文件
/etc/resolv.conf文件是Linux系统的解析器配置文件。它包含DNS条目,帮助您的Linux系统将域名解析为IP地址。
如果此文件不存在或存在,但您仍然有名称解析错误,创建一个并将Google公共DNS服务器附加为nameserver 8.8.8.8
保存更改并重新启动systemd-resolved服务,如图所示。
$ sudo systemctl restart systemd-resolved.service
检查解析器的状态并确保它处于活动状态并按预期运行也是谨慎的:
$ sudo systemctl status systemd-resolved.service
2。由于防火墙限制
如果第一个解决方案不适合您,那么防火墙限制可能会阻止您成功执行DNS查询。检查防火墙,确认端口53(用于DNS -域名解析)和端口43是否打开。如果端口被阻塞,请按如下方式打开:
UFW防火墙(Ubuntu/Debian和Mint)打开端口53 &43在UFW防火墙上执行以下命令:
$ sudo ufw allow 43/tcp
$ sudo ufw reload```
For firewalld (RHEL / CentOS / Fedora)
For Redhat based systems such as CentOS, invoke the commands below:
```$ sudo firewall-cmd --add-port=53/tcp --permanent
$ sudo firewall-cmd --add-port=43/tcp --permanent
$ sudo firewall-cmd --reload
我希望你现在对"名称解析临时失败"错误有了一个概念。我还发现了一个类似的git问题,希望能有所帮助
https://github.com/kubernetes/kubernetes/issues/6667