我正在运行一个使用Flannel作为CNI的3节点Kubernetes集群。我使用了kubeadm来设置这个集群,版本是1.23。
我的Pod需要使用DNS地址与外部主机通信,但是这些主机没有DNS服务器。为此,我在集群中的每个节点的/etc/hosts文件中添加了它们的条目。节点可以从DNS解析主机,但Pod无法解析它们。
我尝试在互联网上搜索这个问题,有建议使用HostAlias或更新容器内的/etc/hosts文件。但我的问题是主机列表很大,在yaml文件中维护这个列表不可行。
我还查看过Kubernetes是否有一些内置标志可以让Pod查找节点的/etc/hosts文件中的条目,但没有找到。
所以我的问题是 -
- 为什么运行在节点上的Pod无法解析/etc/hosts文件中存在的主机。
- 有没有一种设置本地DNS服务器并要求所有Pod查询该DNS服务器以进行特定主机解析的方法?
欢迎提出任何其他建议或解决方法。