docker - 如何使用Docker Swarm和Consul启用更快的容器重新调度?

有关我的环境的一些背景:

我有在3个ubuntu 14.04流浪者盒子上运行的docker swarm。群主机在一台机器(带有领事)上运行,其他两台机器正在运行与该主机相连的群 worker 。我在文档页面https://docs.docker.com/swarm/install-manual/下设置环境。它工作正常,因此从我的主计算机运行的任何docker -H :4000 <some_docker_command>都可以正常工作。当我在两个 worker 上运行 gliderlabs / registrator 容器时,服务发现处于 Activity 状态。

问题:

我的集群发生的任何更改(例如节点或容器故障以及通过swarm重新调度容器(使用标记-e "reschedule:on-node-failure"创建的)重新安排容器的过程)的发生时间都在30到45秒左右。相比之下,当我在CoreOS系统上运行Fleet和etcd时,容器重新调度和节点故障的通知通常在5秒钟内发生。有什么方法可以更改领事和docker swarm中的某些设置,以将所有内容加速到类似于我在CoreOS上使用车队和etcd所经历的水平?如果是这样,我该怎么办?

tldr:我正在使用consul运行群集,重新安排容器的时间,并且对docker -H :4000 ps输出的更改直到节点关闭后大约30-45秒才发生。如何缩短该时间段?

最佳答案

您可以尝试将TTL和retries设置为较低的值,以使群集管理器对故障采取更快的行动。

例如:

docker run swarm manage --engine-failure-retry=1 consul:x.y.z.a:8500

完整documentation

https://stackoverflow.com/questions/37556522/

相关文章:

docker - 来自链接容器的主机网络访问

visual-studio - 适用于Windows Beta的Docker +适用于Visual

docker - Ansible如何将本地镜像推送到私有(private)注册表

docker - 装入命名卷时,在什么条件下从容器复制数据?

elasticsearch - cadvisor, elasticsearch, docker :

docker - 可以创建增量检查点 CRIU

jenkins - 使用 Cloudbees Docker 构建和发布插件时从 Jenkins 奴隶

docker - 当我尝试连接到 docker 镜像时,主机没有运行

docker - Docker Kitematic连接ETIMEDOUT错误

docker - Docker-compose守护程序模式日志