Swarm是Docker原生的主机集群管理工具。配置Swarm集群的节点发现主要依靠三种方式。1:使用swarm生成的token方式。2:文件发现,把节点信息写在文件里,swarm管理节点通过该文件里的节点信息去发现节点。2:依赖发现服务(zookeeper,etcd等),swarm客户端向发现服务注册节点信息,管理节点从中获取节点信息。
本例演示swarm+zookeeper,配置docker集群的过程。docker环境为Centos7。
实验环境信息:
zookeeper:192.168.1.110:2181
swarm_node1:192.168.1.121:2735
swarm_node2:192.168.1.122:2735
swarm_manage:192.168.1.121:3376
1:安装一个zookeeper服务,单台或zookeeper集群均可。(不赘述)
2:各节点开放docker访问端口:
# vi /etc/sysconfig/docker OPTIONS='--selinux-enabled -H tcp://0.0.0.0:2379 -H unix:///var/run/docker.sock' # systemctl retart docker
3:各节点下载swarm镜像:
docker pull docker.io/swarm
4:各节点向zookeeper注册节点信息:
node1: # docker run -d swarm join zk://192.168.1.110:2181/swarm --addr=192.168.1.121:2375 node2: # docker run -d swarm join zk://192.168.1.110:2181/swarm --addr=192.168.1.122:2375
如果有条件,可以使用zk客户端进入zookeeper查看注册的节点信息:
可以看到两个节点信息已经注册上去了。
5:创建swarm管理节点:
# docker run -d -p 3376:3376 -t swarm manage -H 0.0.0.0:3376 zk://192.168.1.110:2181/swarm
以上操作完成后,node1,node2就成为了一个由swarm管理的docker集群。
6:验证集群:
# docker -H 192.168.1.121:3376 info