docker 在1.12版本以后集成了swarm 集群管理功能,不用另外安装,百分之百支持docker api,依照raft算法维持集群一致性
首先看一下docker swarm --help
Commands:
ca Manage root CA
init Initialize a swarm
join Join a swarm as a node and/or manager
join-token Manage join tokens
leave Leave the swarm
unlock Unlock swarm
unlock-key Manage the unlock key
update Update the swarm
非常直白,初始化,加入,离开。。。
执行 docker swarm init 初始化集群
Swarm initialized: current node (0vwpni05mew2j84i6gjet44iu) is now a manager
然后该节点默认成为一个管理节点 : docker node ls
其它节点也可以依manager 身份加入集群,也可以是worker 身份加入集群,多个manager的话只有一个leader ,其他都是备选状态。
加入一个管理节点执行:docker swarm join-token manager 命令的返回结果
To add a manager to this swarm, run the following command:
docker swarm join --token SWMTKN-1-0egxm9ziq5n9af4js4djmzteadhzd94jk6sdsqy6va0w5t4ipw-b2rqlq1pmo4sn8ibrhrdzqkd9 192.168.10.38:2377
加入一个工作节点执行:docker swarm join-token worker 命令的返回结果
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-0egxm9ziq5n9af4js4djmzteadhzd94jk6sdsqy6va0w5t4ipw-1jcbzs9rj62bjoxxhmi2lbh3t 192.168.10.38:2377
然后在管理节点
[root@docker-node1 ~]# docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
8qoru6xefjpedtf18suqo6cgb * docker-node1 Ready Active Leader
i503eecgkjcbnnnne3ienn01i docker-node2 Ready Active
jdjy4tadppiul8mdu2pxhmlck docker-node3 Ready Active Reachable
可以看到该集群三个节点,两个manager 节点 一个worker 节点