首页 > 解决方案 > Docker swarm - 在许多管理器的情况下的请求流

问题描述

正如我们在 docker swarm 中所知道的,我们可以拥有多个管理器。假设我们有 2 个节点和 2 个管理器(因此每个节点既是管理器又是工作器)。

现在,让客户端(使用 CLI 工具)执行以下两个单独的场景:
1. docker create service some_service
2.docker update --force some_service
在其中一个集群节点上启动客户端。
上述请求将发送到哪里?只对领导者还是对每个工作节点?docker如何处理并发请求?

标签: dockerdocker-swarmdocker-swarm-mode

解决方案


我假设您正在谈论与 manager api 交谈的 docker cli。

节点上的 docker cli 将默认连接到 localhost。假设您是经理,您可以看到您的 cli 正在与哪个节点通信docker node ls

节点名称旁边的*表示您正在与之交谈的那个。

如果该节点不是领导者,它将从那里将命令中继到领导者节点并等待响应返回到您的 cli。这一切都意味着:

  1. 只需确保您在管理器节点上运行 docker cli,或者您的 cli配置为与一个.
  2. 哪个经理无关紧要,因为他们都会将您的命令传递给当前的领导者。

推荐阅读