Docker Swarm创build真正的集群:Registered和Removed

我最近和Docker一起玩,刚刚发现了Swarm。 在我的情况下,我有两个主机( 熨斗 )与Ubuntu的docker安装和一台笔记本电脑( OSX

  • host1 docker-node(212.xx1)
  • host2 docker-node(212.xx2)
  • 笔记本电脑docker-cli + swarm

我试图创build一个集群与两个docker节点,所以,在笔记本电脑:

$ swarm create TOKEN_ID $ swarn join token://TOKEN_ID --addr=212.xx1 INFO[0000] Registering on the discovery service every 20s... addr=212.xx1:2375 discovery=token://TOKEN_ID Ctrl+C $ swarn join token://TOKEN_ID --addr=212.xx2 INFO[0000] Registering on the discovery service every 20s... addr=212.xx2:2375 discovery=token://TOKEN_ID Ctrl+C 

然后,我也在笔记本电脑中创build了swarm-manager ,来pipe理集群:

 $ swarm manage token://TOKEN_ID --host=0.0.0.0:4243 

如果我立即列出他们出现的节点:

 $ swarm list token://TOKEN_ID 212.xx1 212.xx2 

但一分钟之后,他们根本没有出现:

 $ swarm list token://TOKEN_ID $ 

如果我尝试在群集中安装任何容器,它会说:

 $ docker -H 0.0.0.0:4243 run -dP nginx ERRO[0067] HTTP error: No healthy node available in the cluster status=500 Error response from daemon: No healthy node available in the cluster 

请注意,如果我使用-debug选项运行swarm ,它会说明以下内容:

 INFO[0002] Registered Engine 212.xx1:2375 (after about a minute) INFO[0041] Removed Engine 212.xx1:2375 

任何关于在这里会发生什么的线索? 先谢谢你。

正如Alexandre Beslic(@abronan)在IRC上对我说的那样,“节点通过swarm join命令(在日志中你应该看到”节点每隔XXX秒注册一次“)对发现服务心存疑虑,如果节点没有参与该簇将被删除,因为它被附加到一个TTL值(如果这个值降到0,则删除该条目)“。 所以,问题解决了。