繁体   English   中英

Docker:群工人连接到服务器

[英]Docker: Swarm workers connecting to server

我有一堆群集容器(现在在一个主机中,但是可能在多主机系统中,符合一个多节点群集)。 该系统由一个数据服务器和一组自治的工作程序组成,这些工作程序处理服务器收到的位并提取结果。 输入数据检索和输出数据摄取是通过HTTP GET / POST完成的。 服务器端(数据提供和结果接收)可以工作,并且在没有Docker的情况下针对在任何主机上运行的工作程序进行测试时,它可以正常运行。 但是我需要将这些工人放在Docker群中。

我无法实现的是不同的集群工作人员与外部服务器之间的通信。 我的服务器运行在IP 80.69.180.30的主机上,端口8080。

python test-dataserver.py -H 10.69.180.30 -p 8080

在浏览了几个论坛之后,我尝试使用--subnet 10.69.180.0/24创建覆盖网络,然后在另一台主机中启动连接到该网络的工作人员服务。 但是没办法。

docker network create --driver overlay --subnet 10.69.180.0/24 mynet
docker service create --network mynet --name mysrv --replicas 4 \
                 centos curl http://10.69.180.30:8080/get_task

在这个简单的示例中,我不调用worker,而只是curl到服务器和get_task节点的地址。 它应该返回一个JSON字符串,其中包含有关要执行的任务的信息。 但是在服务器端,我没有收到任何请求。

我不是网络专家,所以我可能会错过一些琐碎的事情……(顺便说一句,我首先尝试做同样的事情,但是服务器在同一主机上运行,​​但没有成功。)

您知道是否可以进行此设置吗? 我将非常感谢您完成这项工作的任何提示...

提前致谢!

我会使用Dockers默认IP范围创建覆盖网络

码头工人网络创建-驱动程序覆盖mynet

之后,将外部主机添加到服务中。

docker service create 
       --add-host external:10.69.180.30 \
       --network mynet --name mysrv --replicas 4 \
       centos curl http://external:8080/get_task

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM