1,目的:
通过docker swarm 工具将一台或者多台安装了docker的服务器组成一个完整的集群,该集群中的node节点可以通过Leader节点管理。在使用docker stack部署时,可以将容器自动分发到合适的节点上。
2,服务器准备:
192.168.85.129 docker1
192.168.85.130 docker2
修改主机名,配置hosts,配置完成后暂退再连接,主机名就会生效。
hostnamectl set-hostname docker1
echo "192.168.85.129 docker1" >> /etc/hosts
echo docke1 > /etc/hostname
hostname -i docker1
hostnamectl set-hostname docker2
echo "192.168.85.130 docker2" >> /etc/hosts
echo docke2 > /etc/hostname
hostname -i docker2
3,在docker1上创建一个swarm 集群
docker swarm init
或者:
docker swarm init --advertise-addr 192.168.85.129
如果只有一个leader 节点,可以不加参数,但是有多个的话,为了区分IP,建议加上。
这里提示了两条命令:
1,将其他服务器加入为工作节点:
docker swarm join \
--token SWMTKN-1-1u7cz417zw3x7pgopgmxelgzme03h5rid4erph2pq2smqq108v-a7luanffniduhrauc7cmrs9nh \
192.168.85.129:2377
2,将其他服务器加入为管理节点:
docker swarm join-token manager
docker swarm join \
--token SWMTKN-1-1u7cz417zw3x7pgopgmxelgzme03h5rid4erph2pq2smqq108v-6kkh0gq26otfot5ud4sbvx8wq \
192.168.85.129:2377
4,将docker2作为工作节点加入到docker1的swarm集群中:
docker swarm join \
> --token SWMTKN-1-1u7cz417zw3x7pgopgmxelgzme03h5rid4erph2pq2smqq108v-a7luanffniduhrauc7cmrs9nh \
> 192.168.85.129:2377
5,在leader节点上查看集群状态:
docker node ls
集群创建成功。
6,退出swarm集群:
docker swarm leave --force
注意:leader节点离开后,如果是单个leader节点,该集群将无法管理。
7,刷新docker swarm令牌
docker swarm join 后的参数令牌有过期时长,后面再加入的时候,就需要重新生成令牌:
加入到worker节点:
docker swarm join-token --rotate worker
加入到leader节点:
docker swarm join-token manager