OStack程序员社区-中国程序员成长平台

标题: docker - 如何在多群管理器集群中的docker swarm中找到当前哪个节点是管理器节点? [打印本页]

作者: 菜鸟教程小白    时间: 2022-8-3 10:13
标题: docker - 如何在多群管理器集群中的docker swarm中找到当前哪个节点是管理器节点?

我创建了一个 docker swarm 集群 4个节点出了它 2 是群管理员 (swarm 支持多个管理器) 我明白如果当前 管理节点下降然后是 第二个经理 担任角色 成为群管理员。

就我而言,我正在解雇 休息电话发送给 swarm manager 以创建带有副本的服务等等。

在某个时候,如果这位经理倒台,而第二位经理成为经理,我怎么知道?

有什么方法可以动态通知特定节点是管理器?

请给我澄清一下??



Best Answer-推荐答案


使用命令行界面

(手动)知道经理是否更改的快速方法是通过 CLI:

$ docker node ls

ID                           HOSTNAME  STATUS  AVAILABILITY  MANAGER STATUS
46aqrk4e473hjbt745z53cr3t    node-5    Ready   Active        Reachable
61pi3d91s0w3b90ijw3deeb2q    node-4    Ready   Active        Reachable
a5b2m3oghd48m8eu391pefq5u    node-3    Ready   Active
e7p8btxeu3ioshyuj6lxiv6g0    node-2    Ready   Active
ehkv3bcimagdese79dn78otj5 *  node-1    Ready   Active        Leader

您可以找出当前的经理是谁 领队MANAGER STATUS柱子。

您还可以使用 Leader 单独检查每个节点的格式。字段,例如:
$ docker node inspect <id-node> --format "{{ .ManagerStatus.Leader }}"

true

使用 Docker 远程 API

您还可以通过编程方式检查哪一位经理是领导者。 docker 远程 API 公开了一个 Nodes API endpoint
您可以使用 列出节点 .

您可以提供一个过滤器作为参数,它采用 key=value形式。

您可以使用该过滤器仅列出管理器节点(使用 role=manager ),然后您可以解析和过滤 JSON 输出以保留其 Leader 的节点。字段设置为 true (在 ManagerStatus 下)。

不幸的是没有 leader filter ( yet ) 但我认为这可能是对 swarmkit 问题跟踪器提出的有效增强。

在 docker swarm 模式下还没有事件流(这是由 this issue 在 swarmkit 存储库中跟踪的)。我想象将来,一个事件将在 Leader 切换时触发,如果您正在监听这些事件,您将收到新的 leader 动态通知(例如,如果您有特殊设置并希望动态更新 consul、nginx 中的条目)或互锁)。

关于docker - 如何在多群管理器集群中的docker swarm中找到当前哪个节点是管理器节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40245749/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4