列出节点
要从docker node ls管理器节点查看swarm中运行的节点列表:
$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
46aqrk4e473hjbt745z53cr3t node-5 Ready Active Reachable
该AVAILABILITY列显示调度程序是否可以将任务分配给节点:
Active 意味着调度程序可以将任务分配给节点。
Pause 意味着调度程序不会将新任务分配给该节点,但是现有任务仍在运行。
Drain意味着调度程序不会将新任务分配给该节点。调度程序将关闭所有现有任务,并将它们调度在可用节点上。
该MANAGER STATUS列显示节点参与Raft共识:
无值表示不参与群集管理的工作程序节点。
Leader 表示该节点是主要管理者节点,负责为该群做出所有群管理和编排决策。
Reachable表示该节点是参与Raft共识仲裁的管理者节点。如果领导者节点不可用,则该节点有资格被选举为新的领导者。
Unavailable表示该节点是无法与其他管理器进行通信的管理器。如果管理器节点不可用,则应将新的管理器节点加入群集,或将工作器节点提升为管理器。
检查单个节点
您可以docker node inspect在管理器节点上运行以查看单个节点的详细信息。输出默认为JSON格式,但是您可以传递该--pretty标志以人类可读的格式打印结果。
更新节点
更改节点可用性
通过更改节点可用性,您可以:
排空管理器节点,以便仅执行群集管理任务,并且无法进行任务分配。
排空节点,以便将其卸下进行维护。
暂停节点,使其无法接收新任务。
恢复不可用或已暂停的节点可用状态。
例如,要将管理器节点更改为Drain可用性:
$ docker node update --availability drain node-1
node-1
添加或删除标签元数据
节点标签提供了一种灵活的节点组织方法。您还可以在服务约束中使用节点标签。创建服务时应用约束,以限制计划程序为该服务分配任务的节点。
docker node update --label-add在管理器节点上运行,以将标签元数据添加到节点。该--label-add标志支持一个或一=对。
--label-add为要添加的每个节点标签传递一次标志:
$ docker node update --label-add foo --label-add bar=baz node-1
node-1
您使用docker node update为节点设置的标签仅适用于群集内的节点实体。不要将它们与dockerd的docker守护进程标签 混淆。