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 node-2