【问题标题】:How to enable faster container rescheduling with Docker Swarm and Consul?如何使用 Docker Swarm 和 Consul 实现更快的容器重新调度?
【发布时间】:2016-05-31 22:15:42
【问题描述】:

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

我在 3 个 ubuntu 14.04 vagrant box 上运行了 docker swarm。 swarm master 运行在 1 台机器上(带有 consul),另外 2 台机器正在运行加入 master 的 swarm worker。我按照文档页面https://docs.docker.com/swarm/install-manual/ 设置了环境。它工作正常,因此从我的主机运行的任何docker -H :4000 <some_docker_command> 都可以正常工作。当我在两个工作人员上运行 gliderlabs/registrator 容器时,服务发现处于活动状态。

问题:

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

tldr: 我正在使用 consul 运行 swarm,容器重新调度和更改docker -H :4000 ps 的输出直到节点关闭后大约 30 到 45 秒才会发生。如何缩短此时间段?

【问题讨论】:

    标签: docker consul docker-swarm


    【解决方案1】:

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

    例如:

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

    完整的documentation

    【讨论】:

      猜你喜欢
      • 2016-12-24
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 2016-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      相关资源
      最近更新 更多