2

是否有任何已知的解决方案可以使外部机器连接到 docker swarm 覆盖网络上的容器?

4

1 回答 1

0

这个问题合法的,请参见下面的示例,但是我不知道一个简单的解决方案,我会立即提出一个可能的解决方案,并稍后进行测试和更新。

假设您有一个由许多 Kafka 组成的 docker 覆盖网络,这些网络在几个节点(容器主机)上运行。所有的 Kafka 经纪人都可以很好地相互交流。

当 Kafka客户端需要访问 Kafka代理时,它会连接到该代理(比如说,甚至可能通过 Swarm 的服务外部端口),但随后损坏的可能会回复该数据在另一个代理中,而这是另一个代理的 IP(在覆盖网络)...意味着Kafka 客户端必须能够访问所有 Kafka 代理(覆盖网络)。

如果一切都是容器化的,你可以很容易地做到这一点,但如果不是呢?

您可以使用 SDN 或临时解决方案执行此操作: 具有两个网络的容器充当路由器,其中一个“分支”在覆盖网络上,另一个 l2bridged 到其他 VM 或主机所在的位置并通过它进行路由,你会必须 Swarm “约束”它在您想要覆盖网络访问的网络可用的地方运行。那应该工作!

如果有人有另一个干净/清晰的解决方案,我也很感兴趣

于 2018-12-12T16:58:57.940 回答