在 Docker Swarm 模式下,集群由一个或多个管理节点(Manager)和一个或多个工作节点(Worker)组成。工作节点负责执行任务,但不能投票或决定集群的状态变化。
管理 Worker 节点主要包括以下几种操作:
添加 Worker 节点到 Swarm 集群
要在现有的 Swarm 集群中添加一个新的 Worker 节点,你需要在集群中的 Manager 节点上获取加入命令。这通常通过 docker swarm join-token worker
命令来完成。该命令会返回一个包含集群信息的命令行,你需要在新的节点上执行这个命令以使其加入集群作为 Worker 节点。
示例命令:
docker swarm join --token SWMTKN-... <manager-ip>:<port>
移除 Worker 节点
要从 Swarm 集群中移除一个 Worker 节点,你可以使用 docker node rm
命令。为了移除特定的节点,你需要知道它的 Node ID 或者使用 --force 参数来强制删除。
示例命令:
docker node rm <node-id>
如果不知道 Node ID,可以先列出所有节点:
docker node ls
然后找到你要移除的节点的 ID,并使用上面的 docker node rm
命令移除它。
切换 Worker 节点为 Manager 节点
如果你想将一个 Worker 节点提升为 Manager 节点,可以使用 docker node promote
命令。这需要你有集群的管理权限,并且知道要升级的 Worker 节点的 ID。
示例命令:
docker node promote <node-id>
切换 Manager 节点为 Worker 节点
与之相反,如果你希望降级一个 Manager 节点为 Worker 节点,可以使用 docker node demote
命令。同样地,这也需要你知道节点的 ID 并具有足够的权限。
示例命令:
docker node demote <node-id>
监控 Worker 节点状态
你可以通过 docker node ls
命令查看集群中所有节点的状态。这可以帮助你了解每个节点的角色(Manager 或 Worker)以及它们是否处于活跃状态。
以上就是基本的管理 Docker Swarm 中 Worker 节点的方法。请注意,在进行任何节点的添加或移除操作之前,确保你的服务部署策略不会导致服务中断。如果你的服务依赖于特定数量的节点运行,那么在移除节点前可能需要调整服务的副本数量。