加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在多群集管理器集群中找到哪个节点是docker swarm中当前的管

发布时间:2020-12-16 03:31:06 所属栏目:安全 来源:网络整理
导读:我创建了一个有4个节点的docker swarm集群2 2是swarm管理器(swarm支持多个管理器)我理解当前管理器节点是否关闭然后第二个管理器扮演的是swarm管理器. 在我的情况下,我正在触发swarm管理器的其余调用,以创建具有副本的服务,依此类推. 在某些时候,如果这位经

我创建了一个有4个节点的docker swarm集群2 2是swarm管理器(swarm支持多个管理器)我理解当前管理器节点是否关闭然后第二个管理器扮演的是swarm管理器.

在我的情况下,我正在触发swarm管理器的其余调用,以创建具有副本的服务,依此类推.

在某些时候,如果这位经理失败,第二位经理成为经理,我怎么知道?

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

请给我澄清一下这个?

最佳答案
使用CLI

(手动)知道管理员是否更改的快速方法是通过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列下找出哪个Manager是当前的Leader.

您还可以使用Leader字段单独检查每个节点格式,例如:

$docker node inspect 

使用Docker Remote API

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

您可以提供过滤器作为参数,该参数采用key = value形式.

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

不幸的是,没有领导者过滤器(yet),但我认为这可能是在swarmkit问题跟踪器上提出的有效增强.

Docker swarm模式上还没有事件流(这是在swarmkit存储库上由this issue跟踪的).我想在将来,一个事件将触发Leader切换,如果您正在收听这些事件,您将动态通知新领导者(例如,如果您有特殊设置并且想要动态更新consul中的条目,nginx或联锁).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读