【发布时间】:2017-03-25 16:34:08
【问题描述】:
我正在尝试在 kubernetes 集群上设置 MongoDB 和 MongoDB 监控代理。
监控代理首先查询 mongodb 实例的服务端点,并接收主机名作为响应。然后它停止使用服务端点,并开始使用主机名连接到失败的实例,因为没有解析来解析容器名称。
我想我可以使用无头服务来实现这一点,尽管使用无头服务不是一种选择。
有没有办法在 Kubernetes 中启用容器/pod 的主机名解析或在 kube-dns 中注入自定义 DNS 记录?
【问题讨论】:
-
您可以使用 IP 代替主机名吗?为什么不选择无头服务?您是否尝试过
hostNetwork选项?您需要提供更多详细信息,以便人们了解问题。 -
有问题的代理不使用IP连接到数据库,而是使用主机名。无头服务不是一个选项,因为我还有一个带有访问策略的数据库的 nginx 前端,如果我使用主机名,当数据库实例关闭时,nginx 会崩溃。所以我想要 nginx 的主机名,但是监控代理的 IP 地址或名称解析,这让我陷入了第 22 条问题。我不知道 hostNetwork 选项,我会阅读它。感谢您的提示。 :)
-
我尝试了
hostNetwork选项。它仍然无法解析内部集群 IP。另外,我有一个 mongodb 副本集(与 k8s 副本集不同),它与 FQDN 高度耦合,需要名称解析。理想情况下,如果有某种方法可以将 dns 记录添加到 kube-dns 中,我会很高兴——这表明 x.y.z 指向 10.a.b.c. 的集群内部服务。 -
您是否尝试过:“在 v1.3 中,PodSpec 有一个主机名字段,可用于指定 Pod 的主机名。”
标签: mongodb dns kubernetes kube-dns