我有一个由三个主要组件组成的系统:一个 k8s 集群、一个 bind9 VM“内部 DNS 服务器”和一个 mongoDB 的副本集(每个 mongo 机器都是一个 VM)。一切都在 GCP 中。
k8s 集群位于一个网络中(我们称之为 net1),而 bind9 和 mongoVM 位于不同的网络(net2)上。
我已成功将 bind9 配置为两个网络中所有 VM 的 DNS,但是当我尝试发送 kube-dns 以使用 bind9 的外部 IP 作为我的 somedomain.com 域的存根域时,pod 内的 DNS 解析失败。[即,ping foo.somedomain.com 会产生“未知主机”错误]。
我做了以下事情:
- 将集群的外部 IP 添加到 bind9 的 allow-query 行中。
- 配置了正确的防火墙规则。集群的 pod 和 bind9 的虚拟机之间通过端口 53 进行的通信是免费的。
- 我的 configMap 有这个: stubDomains {"somedomain.com": ["externalIP for bind9 VM"], "internal": ["169.254.169.254" ] }
当我运行它时,DNS 解析失败。但是,如果我切换到 net1 内部的 bind9 VM,并使用其内部 IP,则可以。
这不是通信/权限问题。通过端口 53 的跟踪路由有效。
请指教?