c4rt1y

Docker集群之Swarm实现

0x01 Swarm介绍

Swarm是一套较为简单的工具,用以管理Docker集群,使得Docker集群暴露给用户时相当于一个虚拟的整体。Swarm作为一个管理Docker集群的工具,首先需要将其部署起来,可以单独将Swarm部署于一个节点。另外,自然需要一个Docker集群,集群上每一个节点均安装有Docker。

0x02 环境介绍

#一共2台服务器
master.com 10.10.10.20
node01.com 10.10.10.30

#关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service

#两种方法设置host(每台对应每台的host地址)
echo "master.com" > /etc/hostname
hostname master.com

#下载第三方依赖环境包
yum -y install epel-release

#设置host
cat >>/etc/hosts <<EOF 
10.10.10.20 master.com 
10.10.10.30 node01.com
EOF	

#关闭selinux,需要重启
sed -i 's:SELINUX=enforcing:SELINUX=disabled:g' /etc/selinux/config

#临时关闭seLinux
setenforce 0

#docker安装
yum -y install docker

#重启
reboot

0x03 环境安装

##master和node01

#最新版docker源
cat >/etc/yum.repos.d/docker.repo <<EOF 
[dockerrepo] 
name=Docker Repository 
baseurl=https://yum.dockerproject.org/repo/main/centos/7 
enabled=1 
gpgcheck=1 
gpgkey=https://yum.dockerproject.org/gpg 
EOF	

#安装docker
yum install docker-engine -y

#替换内容,开启2375访问,源改为国内
sed -i 's#^ExecStart=/usr/bin/dockerd$#ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock  -H 0.0.0.0:2375  --registry-mirror=https://docker.mirrors.ustc.edu.cn  --selinux-enabled=true#'  /usr/lib/systemd/system/docker.service

#重启docker
systemctl daemon-reload && systemctl restart docker.service

#下载swarm
docker pull swarm

##master	
#创建key(未来如果做成自动化,其实直接做32位的md5就好)
docker run --rm swarm create
22ee151adf5bf598284fdc064d894b5c

#利用key添加到swarm组
docker run -d swarm join -addr=10.10.10.20:2375 token://26f333fe646b7199626c2a9aef3a10fd


##node01
#利用key添加到swarm组
docker run -d swarm join -addr=10.10.10.30:2375 token://26f333fe646b7199626c2a9aef3a10fd

##master
#利用key启动4000端口
docker run -d -p 4000:2375 swarm manage token://26f333fe646b7199626c2a9aef3a10fd


##在master和node01任意一台执行(会超时)
docker run --rm swarm list token://26f333fe646b7199626c2a9aef3a10fd

#测试查询信息
docker -H 10.10.10.20:4000 info

#查看镜像(所有集群的镜像集合)
docker -H 10.10.10.20:4000 images

#所有的服务器都下载
docker -H 10.10.10.20:4000 pull centos:6

0x04 资料来源

http://blog.daocloud.io/swarm_analysis_part1/
http://www.gaohuirong.cn/docker/2016/06/11/dockerswarm.html
GoTop