docker的学习历程-swarm集群搭建(动态扩缩容)

搭建基于docker swarm的nginx集群(centos-7)

搭建步骤

  1. 准备四台虚拟机
    虚拟机的ip详情

  2. 配置国内repo源,这是使用阿里云提供的repo源

# 备份初始repo源
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
#下载repo文件
cd   /etc/yum.repos.d/
curl http://mirrors.163.com/.help/CentOS7-Base-163.repo -o CentOS-Base.repo
# 更新缓存
yum clean all
yum makecache fast

  1. 在一台虚拟机上安装ansible,并配置免密通道,方便集群操作
    ansible的安装与部署

  2. 四台机器全部安装好docker,并启动
    docker的安装步骤

  3. 创建swarm集群

# 初始化集群
[root@swarm-manager1 ~]# docker swarm init --advertise-addr 192.168.44.131
# manager令牌
[root@swarm-manager1 ~]# docker swarm join-token manager

  1. 添加swarm集群manager

出现报错信息:no route to host
添加manager报错
可能是leader manager的防火墙没有关

# 停止防火墙服务
systemctl stop firewalld
setenforce 0
# 永久关闭selinux
sed -i '/^SELINUX/ s/enforcing/disabled/g' /etc/selinux/config

发现问题还是没有解决
试着将集群所有结点的主机关闭防火墙
问题解决
成功添加manager结点

# 添加manager到集群
[root@swarm-manager2 ~]# docker swarm join --token SWMTKN-1-1lbndvl3vrziip1y377uuoe3uzl6ox7nja3mr6ymr92emulhwz-8z39sv42a09z0isjfn1vfa6c4 192.168.44.131:2377
[root@swarm-manager3 ~]# docker swarm join --token SWMTKN-1-1lbndvl3vrziip1y377uuoe3uzl6ox7nja3mr6ymr92emulhwz-8z39sv42a09z0isjfn1vfa6c4 192.168.44.131:2377

  1. 添加swarm集群worker
[root@docker-node /]# docker swarm join --token SWMTKN-1-1lbndvl3vrziip1y377uuoe3uzl6ox7nja3mr6ymr92emulhwz-er23pec2dwap03v88sztrrhk9 192.168.44.131:2377
  1. swarm集群搭建完成swarm搭建完成

swarm集群弹性创建服务

# 启动一个服务
docker service create -p 8080:80 --name my-nginx nginx
# 创建副本
docker service scale my-nginx=5

副本创建成功
高可用
docker swarm使用raft协议来支持管理结点的高可用
本次搭建的集群有三个管理结点,试着关闭管理结点集群是否能正常工作

关闭manager2发现集群可正常工作

[root@swarm-manager2 ~]# systemctl stop docker
# 更新服务
[root@swarm-manager1 ~]# docker service update my-nginx

关闭manager2结点

[root@swarm-manager3 ~]# systemctl stop docker

再关闭manager3发现集群不能正常工作
manager3关闭

使用nfs挂载卷
nfs部署安装


 docker volume create --driver local --opt type=nfs --opt o=addr=192.168.0.8,rw --opt device=:/web  yongzhou

  docker service create   --name nfs-sc-nginx   --publish 80:80   --mount type=volume,source=sc_xieyuqi2,destination=/app  --replicas 10 nginx

  /usr/share/nginx/html -->启动nginx需要去读写的目录
  /app 是我们自定义镜像的nginx里的网页存放的目录
  /app -->volume-->nfs server
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值