Docker Swarm(一):简介与安装
1. Docker Swarm简介
Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。
Swarm 集群节点 (node) 为管理 (manager) 节点和工作 (worker) 节点,Docker Swarm 结构图如下:
2. Docker Swarm安装
安装一个3节点的Swarm集群,准备3台机器,并且均已安装好了docker:
- swarm-manager(172.28.65.126)
- swarm-worker1(172.28.65.114)
- swarm-worker2(172.28.65.113)
在swarm-manager上运行:docker swarm init --advertise-addr=172.28.65.126
[root@swarm-manager ~]# docker swarm init --advertise-addr=172.28.65.126
Swarm initialized: current node (guzf5vu8dsmboxezxqvr0b363) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-2o8t7dgnq6vu7yyopzmlfh2jbin8vc0b1cb3ih916isgnjkyde-0275ipqcyajzd2tg9q7pxkl3h 172.28.65.126:2377
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
分别在swarm-worker1和swarm-worker2上运行:
[root@swarm-worker1 ~]# docker swarm join --token SWMTKN-1-2o8t7dgnq6vu7yyopzmlfh2jbin8vc0b1cb3ih916isgnjkyde-0275ipqcyajzd2tg9q7pxkl3h 172.28.65.126:2377
This node joined a swarm as a worker.
[root@swarm-worker2 ~]# docker swarm join --token SWMTKN-1-2o8t7dgnq6vu7yyopzmlfh2jbin8vc0b1cb3ih916isgnjkyde-0275ipqcyajzd2tg9q7pxkl3h 172.28.65.126:2377
This node joined a swarm as a worker.
在swarm-manager上可查看集群:
[root@swarm-manager ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS ENGINE VERSION
x82zk20uqj1no6cpsmaywvyre swarm-worker1 Ready Active 18.09.0
xpwyk7kziyfq5arrsgh43fh2w swarm-worker2 Ready Active 18.09.1
guzf5vu8dsmboxezxqvr0b363 * swarm-manager Ready Active Leader 18.09.0
下线某个节点,则在该节点上执行:docker swarm leave
在manager节点上执行:
[root@swarm-worker1 ~]# docker swarm leave
Node left the swarm.
[root@swarm-manager ~]# docker node rm swarm-worker1
swarm-worker1
将某个worker节点升级为manager节点:
docker node promote swarm-worker3
将某个manager节点降级为worker节点:
docker node demote swarm-worker3
AVAILABILITY 的三种状态
- Active:调度器能够安排任务到该节点
- Pause:调度器不能够安排任务到该节点,但是已经存在的任务会继续运行
- Drain:调度器不能够安排任务到该节点,而且会停止已存在的任务,并将这些任务分配到其他 Active 状态的节点
MANAGER STATUS 的三种状态
- Leader:为群体做出所有群管理和编排决策的主要管理者节点
- Reachable:如果 Leader 节点变为不可用,该节点有资格被选举为新的 Leader
- Unavailable:该节点不能和其他 Manager 节点产生任何联系,这种情况下,应该添加一个新的 Manager 节点到集群,或者将一个 Worker 节点提升为 Manager 节点