如何将mongo容器暴露在覆盖网络之外?

时间:2019-11-17 17:49:56

标签: mongodb docker kubernetes mesos

我正在将mongodb副本集设置为Mesos集群中的容器(我的问题也适用于k8s / swarm)。可以使用DNS或容器IP初始化副本集。但是,DNS或容器IP都只能在Mesos群集的覆盖网络中访问。现在,用户希望从Mesos / K8s集群外部访问mongo副本集,他们如何通过ingress / marathon-lb实现这一目标?

这里不考虑HostPort,因为只有入口/磅节点才暴露于公共网络。

1 个答案:

答案 0 :(得分:0)

入口控制器正在使用HTTP,但不支持TCP。 MongoDB需要常规的TCP/IP套接字。

还有两种方法可以实现这一目标:

  • 您可以使用NodePortLoadbalancer服务。如果继续 云,那么您可以使用负载均衡器,否则使用NodePort。有关服务的更多信息,请参见here
  • 或者,您可以使用nginx ingress controller

这两种解决方案均在此Mongodb tutorial

中进行了解释