Docker群模式网状路由根本不起作用

时间:2016-09-05 18:03:16

标签: docker docker-swarm docker-engine

我有docker swarm模式设置3个带有vagrant的ubuntu 16.04机器。我认为网状路由根本不起作用。

如果我设置了像

这样的服务

docker service create --name helloworld --replicas 1 -p 8888:80 nginx

我可以通过

查看我的服务
docker service ls
ID            NAME        REPLICAS  IMAGE  COMMAND
evbp2spkjn50  helloworld  1/1       nginx 

我可以卷曲到运行实际容器的机器的ip:

curl 172.28.100.101:8888
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
....

但是,如果我去群中的任何其他机器,我没有正确路由:

curl 172.28.100.102:8888
curl: (7) Failed to connect to 172.28.100.102 port 8888: Connection refused

现在,如果我扩展服务,以便容器在所有这样的机器上运行:

docker service scale helloworld=3
helloworld scaled to 3

突然间,我可以卷曲它。

curl 172.28.100.102:8888
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
....

所有端口都在这些计算机之间打开(它们在vagrant中设置为vm.network :private_network, :ip => "172.28.100.10X", :netmask => "255.255.0.0")。

我尝试使用专用网络,但没有任何变化。

docker --version
Docker version 1.12.1, build 23cf638

2 个答案:

答案 0 :(得分:1)

open issue on github可能与您所看到的内容有关。我认为仍有一些边缘情况,网格路由不能正常工作,并且在我自己的1.12测试中已经看到了这一点。

答案 1 :(得分:0)

我从Ubuntu切换到RancherOS,不良行为消失了。我猜测内核配置有些不对劲。