docker swarms dispatcher-heartbeat 到底是做什么的?

What exactly does docker swarms dispatcher-heartbeat do?

我正在 docker 群中的几个节点 运行 上管理几个堆栈。不幸的是,工作节点似乎失去了与我目前拥有的单个管理器的连接,该管理器将节点设置为故障状态并关闭了该节点上的 运行 服务。

经过一番搜索,我发现可以使用此命令在 swarm 中设置 dispatcher-heartbeat。

docker swarm --dispatcher-heartbeat 5s

显然默认值为 5 秒,建议设置为 30 秒。这个设置具体是做什么的?是否可以将其设置为非常高的数字?我只想让服务无论如何都将 运行 保留在节点上。

我们遇到了类似的问题,但结合了 VMWare 的 VSphere(以及其他服务,这些服务在不同的主机上移动虚拟机)。在移动节点时,它有一段时间“down/seemed 无法访问”,但在集群中,它已经被标记为关闭并且服务被重新安排,即使节点立即恢复。

所以问题来了。 Docker Swarm 使用这个参数 (dispatcher-heartbeat) 来告诉它的节点它们必须多久报告一次它们的健康状态。例如,默认值为 5s,因此如果节点在 5s 间隔内没有响应,则标记为 down/unreachable.

我当时发现(我也会 link 在这里讨论)一个著名的话题,一家公司在 dispatcher-heartbeat 上用 30 60 和 90 测试了 属性可能值得一看。

https://github.com/moby/moby/issues/38321#issuecomment-450138988

希望对您有所帮助。