【问题标题】:What exactly does docker swarms dispatcher-heartbeat do?docker swarms dispatcher-heartbeat 到底是做什么的?
【发布时间】:2022-04-19 01:33:07
【问题描述】:

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

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

docker swarm --dispatcher-heartbeat 5s

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

【问题讨论】:

    标签: docker docker-swarm


    【解决方案1】:

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

    所以问题。 Docker Swarm 使用这个参数(dispatcher-heartbeat)来告诉它的节点他们必须多久报告一次他们的健康状态。因此,例如默认值为 5s,因此如果节点在 5s 间隔内未响应,则将其标记为关闭/无法访问。

    我当时发现(我也会在此处链接讨论)一个值得注意的话题,其中一家公司在调度员心跳上测试了 30 个 60 和 90 的属性,可能值得一看。

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

    希望对你有帮助。

    【讨论】:

    • 感谢您的回答。在我的情况下,我们遇到了一些问题,因为在一个网络中的一些节点和另一个网络中的一些节点之间放置了一个集群,这些网络之间的连接有时会变得不稳定。我临时采用的解决方案是将调度程序心跳增加到一个较高的数字,而永久解决方案(执行时间更长)是将群分成每个网络一个群。
    猜你喜欢
    • 2017-11-13
    • 2023-01-29
    • 2015-08-06
    • 2013-09-02
    • 2014-01-02
    • 2013-10-10
    • 2017-05-08
    • 2022-01-20
    • 2012-10-17
    相关资源
    最近更新 更多