docker中的swarm集群搭建:
swarm是docker引擎的集群模式,是docker服务的编排工具,比kubernetes更轻量级(当然功能比kubernetes要少一些)。
环境搭建:
准备3台虚拟机
192.168.11.13 swarm-node1 主节点(工作节点) 1核1G内存
192.168.11.14 swarm-node2 工作节点 1核1G内存
192.168.11.15 swarm-node3 工作节点 1核1G内存
配置3台虚拟机主机名
hostnamectl set-hostname swarm-node1
hostnamectl set-hostname swarm-node2
hostnamectl set-hostname swarm-node3
配置3台虚拟机之间互相免密登录 (分别在3台虚拟机上执行)
ssh-keygen -t rsa [连续回车4次]
ssh-copy-id swarm-node1
ssh-copy-id swarm-node2
ssh-copy-id swarm-node3
1、在node1上初始化swarm集群
docker swarm init --listen-addr 192.168.11.13:8888 --advertise-addr 192.168.11.13
执行成功,控制台信息类似如下:
Swarm initialized: current node (qph9elp7gdfvgiac2y2tlmt0q) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join --token SWMTKN-1-6dgvtmp0di7w5x6eq49ch3odyh6af3zz60gr4fr2pzacjxe6lo-4g6ly4sp2lo8oi84t62a6ompx 192.168.11.13:8888
To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
(
如果不小心忘了这个join token ,那么可以在manager上运行docker swarm join-token manager命令查看join token。
)
2、在node2和node3上执行以下命令,都加入到node1管理的swarm集群
docker swarm join --token SWMTKN-1-6dgvtmp0di7w5x6eq49ch3odyh6af3zz60gr4fr2pzacjxe6lo-4g6ly4sp2lo8oi84t62a6ompx 192.168.11.13:8888
3、回到node1 (管理节点)上操作
#查看集群中节点列表
docker node ls
#部署一个服务
docker service create --replicas 1 --name helloworld busybox /bin/sh -c "while true; do echo hello world; sleep 2; done"
docker service ls
docker service ps helloworld
docker service inspect helloworld --pretty
#部署服务的数量伸缩
docker service scale helloworld=3
docker service scale helloworld=1
案例在集群环境中成功运行,swarm集群搭建成功!