当前位置: 代码迷 >> 综合 >> docker swarm 集群的基本命令
  详细解决方案

docker swarm 集群的基本命令

热度:4   发布时间:2024-02-06 18:42:42.0

docker的基本管理命令:

docker swarm 创建/管理 集群的命令;

docker swarm init --advertise-addr <MANAGER-IP>
注释:最后跟的的是主节点的IP地址,在主节点执行后 会生成加入node节点的token docker info
注释:以查看群集的当前状态docker node ls
注释:命令以查看有关节点的信息 在*该节点ID下一表明当前连接此节点上

要向该群添加一个worker,请运行以下命令

docker swarm join-token worker

向该群添加管理器,请运行

“docker swarm join token manager”

管理集群的节点

Docker node ls 				#列出集群中的成员信息
该AVAILABILITY列显示调度程序是否可以将任务分配给节点:
?Active 意味着调度程序可以将任务分配给节点。
?Pause 意味着调度程序不会将新任务分配给该节点,但是现有任务仍在运行。
?Drain意味着调度程序不会将新任务分配给节点。调度程序将关闭所有现有任务,并将它们调度在可用节点上。该MANAGER STATUS列显示节点参与Raft共识:
?无值表示不参与群集管理的工作节点。
?Leader 表示该节点是主要管理器节点,负责为该群集制定所有群集管理和编排决策。
?Reachable表示该节点是参与Raft共识仲裁的管理者节点。如果领导者节点不可用,则该节点有资格被选举为新的领导者。
?Unavailable表示该节点是无法与其他管理员通信的管理员。如果管理器节点不可用,则应将新的管理器节点加入群集,或将工作器节点提升为管理器。

检查单个节点

docker node inspect <NODE-ID>
注释:在管理器节点上运行以查看单个节点的详细信息。输出默认为JSON格式,但是您可以传递该--pretty标志以以人类可读的格式打印结果

更新节点

您可以如下修改节点属性:

  • 更改节点可用性
  • 添加或删除标签元数据
  • 更改节点角色
  • 更改节点可用性

通过更改节点可用性,您可以:

  • 排空管理器节点,以便仅执行群集管理任务,并且无法进行任务分配。
  • 排空节点,以便将其卸下进行维护。
  • 暂停节点,使其无法接收新任务。
  • 恢复不可用或已暂停的节点可用状态。
    $ docker node update --availability drain node-1
    注释: 将节点的可用性设置为drain

    添加或删除标签元数据

    节点标签提供了一种灵活的节点组织方法。您还可以在服务约束中使用节点标签。创建服务时应用约束,以限制调度程序为该服务分配任务的节点。

    docker node update --label-add在管理器节点上运行,以将标签元数据添加到节点。该--label-add标志支持一个<key>或一<key>=<value> 对。

    --label-add为要添加的每个节点标签传递一次标志:

  • $ docker node update --label-add foo --label-add bar=baz node-1	
    #为某个节点创建标签node-1		
    docker inspect swarm-0001		
    #查看节点的详细信息,包括标签

    或降级节点

  • 您可以将辅助节点提升为管理员角色。当管理器节点不可用或要使管理器脱机进行维护时,这很有用。同样,您可以将经理节点降级为工作者角色。

  • 要升级一个节点或一组节点,请docker node promote从管理器节点运行$ docker node promote node-3 node-2
    Node node-3 promoted to a manager in the swarm.
    Node node-2 promoted to a manager in the swarm.

    要降级一个节点或一组节点,请docker node demote从管理器节点运行

  • $ docker node demote node-3 node-2
    Manager node-3 demoted in the swarm.
    Manager node-2 demoted in the swarm.docker node promote和docker node demote是 分别用于docker node update --role manager和的便捷命令 docker node update --role worker。

    离开群

  • 控制节点离开集群
  • 当节点离开群集时,Docker引擎将停止以群集模式运行。协调器不再将任务调度到该节点。

    如果该节点是管理者节点,则会收到有关维持仲裁的警告。要覆盖警告,请传递--force标志。如果最后一个管理器节点离开群集,则群集将不可用,需要您采取灾难恢复措施。

  • $ docker swarm leave
    Node left the swarm.
    节点离开群集后,可以docker node rm在管理器节点上运行命令以从节点列表中删除该节点
  • docker node rm node-2