我有一个与主机名解析相关的独特场景。
我在专用网络中的服务器中运行单节点 Kubernetes 集群,它没有 DNS 服务器。
所以我在/etc/hosts file
中配置了一个主机我的笔记本电脑。
现在的问题是我可以从节点(K8s 集群在其上运行)解析该主机,但我无法从 pod 内部解析它。以下是/etc/resolve.conf
节点:
nameserver 127.0.0.53
options edns0
当我从容器内部对主机执行 ping 操作时出现以下错误ping:错误地址“主机名”
如果有人可以在这里帮助我,我将不胜感激。
最佳答案
使用服务 DNS (FQDN: F ull Q 认证 D omain N ame)
如果您使用 K8S 服务公开您的对象(pod、部署等),您可以公开它们 外部命名空间 使用 IP 或使用 FQDN
以下是如何执行此操作的示例:
https://github.com/nirgeier/KubernetesLabs/tree/master/Labs/05-Services#0403-using-the-full-DNS-name
无论部署代码的 IP 和集群如何,名称 (FQDN) 都将相同。
官方文档:
https://kubernetes.io/docs/concepts/services-networking/service/#externalname
关于docker - pod 容器无法解析运行它的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69233979/