Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从外部机器连接到docker Overlay网络上的容器_Docker_Overlay_External_Connectivity_Swarm - Fatal编程技术网

如何从外部机器连接到docker Overlay网络上的容器

如何从外部机器连接到docker Overlay网络上的容器,docker,overlay,external,connectivity,swarm,Docker,Overlay,External,Connectivity,Swarm,是否有任何已知的解决方案可以使外部机器连接到docker swarm覆盖网络上的容器 问题是合法的,请参见下面的示例,但是我不知道一个简单的解决方案,我将立即提出一个可能的解决方案,稍后将进行测试并更新 假设您有一个docker覆盖网络,其中有许多Kafka在同一台计算机上运行 两个节点(容器主机)。所有卡夫卡经纪人都与 彼此相得益彰 当卡夫卡客户端需要访问卡夫卡代理时,它会连接 (比如说,可能是通过Swarm的外部服务) 端口),但断开的可能会答复该数据位于另一个端口中 代理,这是另一个代理的

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

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

假设您有一个docker覆盖网络,其中有许多Kafka在同一台计算机上运行 两个节点(容器主机)。所有卡夫卡经纪人都与 彼此相得益彰

当卡夫卡客户端需要访问卡夫卡代理时,它会连接 (比如说,可能是通过Swarm的外部服务) 端口),但断开的可能会答复该数据位于另一个端口中 代理,这是另一个代理的IP(在覆盖层上 网络)。。。意思是卡夫卡客户端必须能够访问所有卡夫卡 经纪人(覆盖网络)

如果所有东西都是集装箱化的,您可以很容易地做到这一点,但如果不是呢

您可以使用SDN或即兴解决方案执行此操作: 一个容器有两个网络作为路由器,其中一个“分支”在覆盖网络上,另一个L2桥接到另一个VM或主机所在的位置并通过它进行路由,您必须群集“约束”它,使其在您希望覆盖网络访问的网络可用的位置运行。那应该行


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

为什么普通端口映射不起作用?我想您可能会从Docker Swarm模式下的“服务”工作中受益。它旨在公开多个主机服务器上的容器,有效地在覆盖网络上运行的容器之间实现外部世界之间的负载平衡解决方案