Swarm集群搭建及其弹性服务

1.Swarm简介

  • Docker Swarm是Docker官方推出的容器集群管理工具,基于GO语言实现,代码开源在https://github.com/docker/swarm

  • Docker Swarm是生产环境中运行Docker应用程序最简单的方法。作为容器集群管理器,Swarm最大的优势之一就是100%支持标准的DockerAPI。各种基于标准API的工具比如compose docker.py各种管理软件等都可以很容易的与Swarm进行集成,大大方便了用户将原先基于单节点的系统移植到Swarm上,同时Swarm内置了Docker网络插件的支持,用户可以很容易的部署跨主机的容器集群服务。

  • Docker Swarm和Docker Compose一样,都是Docker官方容器编排工机具,但不同的是,Docker Compose是一个在单个服务器或主机上创建多个容器的工具,而DockerSwarm则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然Docker Swarm会更加合适

  • Node Swarm中的每个Docker Engine都是一个node,有两种类型的 node:manager 和worker。

  • 为了向Swarm中部署应用,我们需要在manager node上执行部署命令,manager
    node会将部署任务拆解并分配给一个或多个worker node完成部署。

  • manager node负责执行编排和集群管理工作,保持并维护Swarm处于期望的状态。Swarm中如果有多个manager node,它们会自动协商并选举出一个leader 执行编排任务。

  • woker node接受并执行由manager node派发的任务。默认配置下manager node同时也是一个worker node,不过可以将其配置成manager-only node,让其专职负责编排和集群管理工作。

  • service定义了worker node上要执行的任务。swarm的主要编排任务就是保证 service处于期望的状态下。

Swarm构架图
在这里插入图片描述

一.环境准备

1.三台机器安装了Docker的Centos机器
192.168.10.99 manager
192.168.10.77 worker
192.168.10.55 worker1
2.Docker Engline 1.12+
3.关闭防火墙或者防火墙开启一下端口

  • TCP端口2377,用于集群管理通信
  • TCP和UDP端口7946,用于节点之间通信
  • UDP端口4789,用于覆盖网络

三.创建集群

  • 在任意节点下通过docker swarm init 命令创建一个新的Swarm
    集群并加入,且该节点会默认成为Manager节点,根据我们预先定义的角色,在任意一台机器上运行改命令即可。
    通常,第一个加入集群的管理阶段将成为leader,火来加入的管理节点都是Reachable。当前的Leader如果挂掉,所有的Reachable将重新选家具一个新的Leader。
   docker swarm init --advertise-addr 192.168.10.99

四.加入集群

加入worker

docker swarm join-token worker

加入manager

docker swarm join-token manager

具体操作:
Manager
在这里插入图片描述
Worker
在这里插入图片描述
查看集群情况:

docker node ls

ID                            HOSTNAME   STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
qd7t3v2tstp2naf0wf1ngwxe6 *   manager    Ready     Active         Leader           20.10.10
m72c77ke9oex5nvd093dam0aa     worker     Ready     Active                          20.10.8
zix3bgn3t35axfaz4ac4senz4     worker1    Ready     Active                          20.10.10

创建nginx服务

docker service create --replicas 1 --name hfrnginx -p 8081:80 nginx

创建弹性服务(两种模式)

docker service scale hfrnginx=2
docker service update --replicas 2 hfrnginx

查看结果
在这里插入图片描述

dokcer ps -a

在这里插入图片描述

docker ps -a

在这里插入图片描述
结果如下:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值