我在Mesos集群中运行mongodb副本集作为容器(我的问题也适用于k8s/swarm)。副本集可以使用DNS或容器IP进行初始化。但是,DNS和容器IP都只能在Mesos集群的overlay网络中访问。现在,用户希望从Mesos/K8s集群外部访问mongo副本集,他们如何通过ingress/marathon-lb实现这一点?
这里不考虑HostPort,因为只有入口/lb节点向公共网络公开。
发布于 2019-11-18 22:20:15
入口控制器正在使用HTTP,但它不支持TCP。MongoDB需要常规TCP/IP套接字。
要做到这一点,还有另外两种方法:
NodePort或Loadbalancer服务。如果这在云上运行,那么你可以使用负载均衡器,否则使用NodePort。有关服务的更多信息,请使用nginx ingress controllerhere.
这两种解决方案都在此Mongodb tutorial中进行了说明
https://stackoverflow.com/questions/58903374
复制相似问题