文/Anoyi
Docker Swarm 集群节点管理常用操作
1、查看当前集群节点列表
在 Manager 上执行如下命令
docker node ls
结果如下
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS3fff9l59dvn5jvot2s27gf9n2 * ManagerX Ready Active Leader4byjmtcm1ag8qffxjwnhwsf4l WorkerA Ready Active sks1qb0zqlaetmpsqfj5tfx56 WorkerB Ready Active
AVAILABILITY 的三种状态:
Active
:调度器能够安排任务到该节点Pause
:调度器不能够安排任务到该节点,但是已经存在的任务会继续运行Drain
:调度器不能够安排任务到该节点,而且会停止已存在的任务,并将这些任务分配到其他 Active 状态的节点
MANAGER STATUS 的三种状态
Leader
:为群体做出所有群管理和编排决策的主要管理者节点Reachable
:如果 Leader 节点变为不可用,该节点有资格被选举为新的 LeaderUnavailable
:该节点不能和其他 Manager 节点产生任何联系,这种情况下,应该添加一个新的 Manager 节点到集群,或者将一个 Worker 节点提升为 Manager 节点
2、检查单个节点
在 Manager 上执行如下命令
docker node inspect <NODE-ID>
默认结果是 JSON 格式,加上 --pretty
变为普通格式
ocker@ManagerX:~$ docker node inspect ManagerX --prettyID: 3fff9l59dvn5jvot2s27gf9n2Hostname: ManagerX Joined at: 2018-01-10 06:23:26.309570091 +0000 utcStatus: State: Ready Availability: Active Address: 192.168.99.100Manager Status: Address: 192.168.99.100:2377 Raft Status: Reachable Leader: YesPlatform: Operating System: linux Architecture: x86_64Resources: CPUs: 1 Memory: 995.9MiBPlugins: Log: awslogs, fluentd, gcplogs, gelf, journald, json-file, logentries, splunk, syslog Network: bridge, host, macvlan, null, overlay Volume: local Engine Version: 18.01.0-ce-rc1
3、更新节点
3.1、改变节点的可用性(availability),示例
docker node update --availability drain WorkerA
3.2、添加/移除标签元数据,示例
docker node update --label-add foo --label-add bar=baz WorkerA
类型一:
--label-add <key>
类型二:
--label-add <key>=<value>
3.3、升级/降级节点,示例
[升级] docker node promote WorkerA
[降级] docker node demote WorkerA
作者:Anoyi
链接:https://www.jianshu.com/p/48dd5fff7150