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查看注册的节点信息:

swarm+zookeeper配置docker集群_swarm

 可以看到两个节点信息已经注册上去了。


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

swarm+zookeeper配置docker集群_docker_02