红联Linux门户
Linux帮助

Ubuntu虚拟机搭建Swarm集群环境

发布时间:2016-08-09 13:38:55来源:linux网站作者:xuguokun1986
一、说明:
1)实验条件:四台虚拟机(Ubuntu-14.04)
2)四台虚拟机最好不要互相拷贝,需要分别安装
3)四台虚拟机的IP分别是:192.168.110.132、192.168.110.136、192.168.110.137、192.168.110.138
 
二、实验步骤
1.利用Vmvare搭建四台虚拟机
2.分别在四台虚拟机上安装docker
注意:本步骤请参考官方权威档:https://docs.docker.com/engine/installation/linux/ubuntulinux/
3.在四台虚拟主机上分别做如下配置:
编辑/etc/default/docker文件,然后建下面的配置内容加载文件的末尾:
1)在132机器上面加如下内容:
DOCKER_OPTS="--label com.example.storage=managerpri --cluster-store=consul://192.168.110.132:8500  -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"  
2)在136机器上面加如下内容:
DOCKER_OPTS="--label com.example.storage=managerbak --cluster-store=consul://192.168.110.132:8500  -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"  
3)在137机器上面加如下内容:
DOCKER_OPTS="--label com.example.storage=ngnix-php --cluster-store=consul://192.168.110.132:8500  -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"  
4)在138机器上面加如下内容:
DOCKER_OPTS="--label com.example.storage=mysql --cluster-store=consul://192.168.110.132:8500  -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock"  
注意:
--label com.example.storage=##是给每个docker daemon打标签,可以方便compose编排服务的时候进行- "constraint:com.example.storage==##"的配置  
4.分别在192.168.110.132、192.168.110.136、192.168.110.137、192.168.110.138上面部署一下内容:manager(主)和consul、manager(备)、swarm node、swarm node
1)在132虚拟机上创建consul容器
docker run -d -p 8500:8500 --name=consul progrium/consul -server -bootstrap  
2)在132机器上创建manager(主)容器
docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise 192.168.110.132:4000 consul://192.168.110.132:8500  
3)在136机器上创建manager(备)容器
docker run -d -p 4000:4000 swarm manage -H :4000 --replication --advertise 192.168.110.136:4000 consul://192.168.110.132:8500  
4)在137机器上创建swarm  node容器
docker run -d swarm join --advertise=192.168.110.137:2375 consul://192.168.110.132:8500  
5)在138机器上创建swarm  node容器
docker run -d swarm join --advertise=192.168.110.138:2375 consul://192.168.110.132:8500  
5、验证集群环境是否搭建成功
在132机器上面执行如下命令:$
docker -H :4000
info
如果安装成功,会看见如下的输出:
Containers: 23  
Running: 3  
Paused: 0  
Stopped: 20  
Images: 10  
Server Version: swarm/1.2.4  
Role: primary  
Strategy: spread  
Filters: health, port, containerslots, dependency, affinity, constraint  
Nodes: 2  
dockertest3: 192.168.110.137:2375  
└ ID: TCBC:FWLT:FVQX:3AGB:ZPIY:NASL:JRLW:4VE7:UBQI:V2M6:2QT7:QHVF  
└ Status: Healthy  
└ Containers: 16 (1 Running, 0 Paused, 15 Stopped)  
└ Reserved CPUs: 0 / 1  
└ Reserved Memory: 0 B / 2.034 GiB  
└ Labels: com.example.storage=ngnix-php, kernelversion=4.2.0-27-generic, operatingsystem=Ubuntu 14.04.4 LTS, storagedriver=aufs  
└ UpdatedAt: 2016-08-08T11:10:17Z  
└ ServerVersion: 1.12.0  
 dockertest4: 192.168.110.138:2375  
└ ID: 5F4D:TSPS:45B5:SVM5:MP2G:OG7M:K4Y4:URS7:NSE2:3HUI:C7P5:D5OF  
└ Status: Healthy  
└ Containers: 7 (2 Running, 0 Paused, 5 Stopped)  
└ Reserved CPUs: 0 / 1  
└ Reserved Memory: 0 B / 2.034 GiB  
└ Labels: com.example.storage=mysql, kernelversion=4.2.0-27-generic, operatingsystem=Ubuntu 14.04.4 LTS, storagedriver=aufs  
└ UpdatedAt: 2016-08-08T11:10:38Z  
└ ServerVersion: 1.12.0  
Plugins:  
Volume:   
Network:   
Swarm:   
NodeID:   
Is Manager: false  
Node Address:   
Security Options:  
Kernel Version: 4.2.0-27-generic  
Operating System: linux  
Architecture: amd64  
CPUs: 2  
Total Memory: 4.068 GiB  
Name: c03ecbd3f190  
Docker Root Dir:   
Debug Mode (client): false  
Debug Mode (server): false  
WARNING: No kernel memory limit support  
注意:修改环境变量.
【说明】这步很重要,如果不需要,所有的命令:docker run 、docker info等都是对单个节点而言,并不是对swarm集群而言的  
vim /etc/profile  
export DOCKER_HOST=:4000
 
本文永久更新地址:http://www.linuxdiyf.com/linux/23156.html