Docker_swarm集群搭建和服务上线及docker-machine集群管理工具

1. Docker_swarm集群搭建

集群安装docker:
环境部署:

角色 server-id 安装
MANAGER Server1 DOCKER(MASTER)
NODE1 Server2 DOCKER
NODE2 Server3 DOCKER
Manager,node
yum install -y
docker-engine-17.03.1.ce-1.el7.centos.x86_64.rpm
docker-engine-selinux-17.03.1.ce-1.el7.centos.noarch.rpm
bash-completion.noarch 1:2.1-6.el7
systemctl start docker
docker swarm init #初始化

Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第1张图片
在每个节点根据全球唯一token标示加入集群:

 docker swarm join \
>     --token SWMTKN-1-3762bvy7nfh1e142z0cae6843wemapyd2j93o8ghtahje262w5-2946rqu8bhr2z1o7tbbb3kahw \
>     172.25.30.1:2377

2. 集群部署nginx服务

真机搭建仓库:
取消认证;传输密钥给各个节点:
docker container prune #删除认证
传输加密证书:

scp -r certs.d/ root@172.25.30.1:/etc/docker/
scp -r certs.d/ root@172.25.30.2:/etc/docker/
scp -r certs.d/ root@172.25.30.3:/etc/docker/
#创建加密以便远程登陆
docker run -d --restart=always --name registry -v `pwd`/certs:/certs -e REGISTRY_HTTP_ADDR=0.0.0.0:443 -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key -p 443:443 registry:2
docker push westos.org/nginx #推送仓库nginx
docker load -i /home/kiosk/visualizer.tar
docker tag dockersamples/visualizer westos.org/visualizer 
docker push westos.org/visualizer #推送监控仓库

各个节点必须加上解析 172.25.30.250 westos.org
在每个节点从westos.org仓库中拉取镜像:

docker pull westos.org/nginx
在manager部署节点安装启动nginx从本地仓库拉取镜像
80:80------>端口映射
docker service create --name nginx --publish 80:80 --replicas 3 westos.org/nginx
docker service ls
docker service ps nginx
docker service scale nginx=6 #开启6个nginx服务
docker service ps nginx
docker ps

Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第2张图片
自动实现负载均衡
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第3张图片
部署多个容器:sacle规模
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第4张图片
为了效果明显我们拉取了visualizer监控镜像
在真机提前搭建好仓库以便节点调用:

docker service create --name=viz --publish=8080:8080/tcp --constraint=node.role==manager --mount=type=bind,src=/var/run/docker.sock,dst=/var/run/docker.sock westos.org/visualizer

Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第5张图片
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第6张图片
[root@server1 ~]# docker service scale nginx=3
nginx scaled to 3
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第7张图片
为了让效果更加明显我们给每个nginx添加一个页面:

echo server1 > index.html
docker container cp index.html nginx.2.9n9gpmvx3rzzjbseujqbsgi7m:/usr/share/nginx/html
echo server2 > index.html
docker container cp index.html nginx.4.jelcmismly25g3kz75tzy1un9:/usr/share/nginx/html
echo server3> index.html
docker container cp index.html   nginx.5.ckja2d72m78xr5nsecuio8hkm:/usr/share/nginx/html

当一个节点宕掉swarm会将该节点任务迁移到另一个节点上但是不会将其中的内容迁移过来所以访问时就会出现nginx原始界面
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第8张图片
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第9张图片

3. 服务上线

推送新的服务镜像:
docker tag game2048 westos.org/game2048
docker push westos.org/game2048
滚动更新服务上线: # update-parallelism 10 每10s更新10台迭代更新
docker service update –image westos.org/game2048 –update-parallelism 10 –update-delay 10s nginx
nginx
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第10张图片
旧服务下线:
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第11张图片
服务上线:
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第12张图片
从集群移出
docker service ls
docker service rm viz #manager移除监控服务
docker swarm leave #从swarm集群移除节点
docker swarm leave –force #强制移除

4 docker-machine集群管理工具

Docker Machine 是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。下面是来自 Docker Machine 官方文档的一张图,很形象哦!
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第13张图片

Docker-machine部署docker集群

安装脚本:
Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第14张图片

chmod +x docker-machine-Linux-x86_64-1.15.0
ln -s docker-machine-Linux-x86_64-1.15.0  docker-machine #建立软连接以便更新服务
docker-machine -v #查看版本
ssh-keygen #给节点传输密钥以便直接连接
ssh-copy-id 172.25.30.1
ssh-copy-id 172.25.30.2
ssh-copy-id 172.25.30.3
ssh root@172.25.30.1 #测试
ssh root@172.25.30.2
ssh root@172.25.30.3
docker-machine ls #查看管理的节点
cd
# 创建节点加入集群记得加本地解析
docker-machine create --driver generic --generic-ip-address=172.25.30.1 server1
docker-machine create --driver generic --generic-ip-address=172.25.30.2 server2
docker-machine create --driver generic --generic-ip-address=172.25.30.3 server3
docker-machine ls 
docker-machine ssh server3 docker images  #从管理节点查看server3的镜像
docker-machine env server3 #从管理节点查看server3的环境
docker-machine rm server3 #移除节点server3

Docker_swarm集群搭建和服务上线及docker-machine集群管理工具_第15张图片

你可能感兴趣的:(docker)