Docker Swarm 入门:节点管理
2018-01-10 本文已影响347人
Anoyi
文/Anoyi
► Docker Swarm 集群节点管理常用操作
1、查看当前集群节点列表
在 Manager 上执行如下命令
docker node ls
结果如下
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
3fff9l59dvn5jvot2s27gf9n2 * ManagerX Ready Active Leader
4byjmtcm1ag8qffxjwnhwsf4l WorkerA Ready Active
sks1qb0zqlaetmpsqfj5tfx56 WorkerB Ready Active
AVAILABILITY 的三种状态:
-
Active
:调度器能够安排任务到该节点 -
Pause
:调度器不能够安排任务到该节点,但是已经存在的任务会继续运行 -
Drain
:调度器不能够安排任务到该节点,而且会停止已存在的任务,并将这些任务分配到其他 Active 状态的节点
MANAGER STATUS 的三种状态
-
Leader
:为群体做出所有群管理和编排决策的主要管理者节点 -
Reachable
:如果 Leader 节点变为不可用,该节点有资格被选举为新的 Leader -
Unavailable
:该节点不能和其他 Manager 节点产生任何联系,这种情况下,应该添加一个新的 Manager 节点到集群,或者将一个 Worker 节点提升为 Manager 节点
2、检查单个节点
在 Manager 上执行如下命令
docker node inspect <NODE-ID>
默认结果是 JSON 格式,加上 --pretty
变为普通格式
ocker@ManagerX:~$ docker node inspect ManagerX --pretty
ID: 3fff9l59dvn5jvot2s27gf9n2
Hostname: ManagerX
Joined at: 2018-01-10 06:23:26.309570091 +0000 utc
Status:
State: Ready
Availability: Active
Address: 192.168.99.100
Manager Status:
Address: 192.168.99.100:2377
Raft Status: Reachable
Leader: Yes
Platform:
Operating System: linux
Architecture: x86_64
Resources:
CPUs: 1
Memory: 995.9MiB
Plugins:
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