如何使用Docker Swarm和Consul启用更快的容器重新安排?

对于我的环境的一些背景:

我有docker swarm在3个ubuntu 14.04stream浪盒上运行。 群主在一台机器(有领事)上运行,另外两台机器正在运行群体工作人员join到主人。 我在文档页面https://docs.docker.com/swarm/install-manual/上设置了环境。 它工作正常,以便从我的主机运行任何docker -H :4000 <some_docker_command>工作正常。 在我的两名工作人员上运行gliderlabs / registrator容器时,服务发现是激活的。

问题:

群集中的任何更改(例如节点或容器故障)以及群集(使用标记-e "reschedule:on-node-failure"创build的容器-e "reschedule:on-node-failure" )的过程在大约30-45秒内发生。 通过比较,当我在CoreOS系统上运行舰队和etcd时,容器重新调度和节点故障通知通常在5秒内发生。 有什么方法可以改变consul和docker swarm中的一些设置,以加速所有的事情,达到与我在CoreOS上使用的机群和etcd相似的水平? 如果是这样,我需要做什么?

tldr:我正在运行与领事集群 ,容器reschedualing和更改docker -H :4000 ps的输出docker -H :4000 ps不会发生,直到约30 – 45秒后节点下降。 我怎样才能缩短这段时间?

您可以尝试设置TTL 并重试较低的值,以使swarmpipe理器在故障时更快地采取行动。

例如:

 docker run swarm manage --engine-failure-retry=1 consul:xyza:8500 

完整的文档