互联网技术 / 互联网资讯 · 2023年12月26日

Docker集群管理中的节点:云计算核心技术Docker教程

列出节点

要从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守护进程标签 混淆。

OpenMagic API

Need more than content? Move into the product flow.

If you are here for model access, pricing, developer docs, or the future API console, the dedicated product path now lives on api.openmagic.ai.