Docker Swarm学习

八、环境准备:个人购买阿里云服务器4台

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
接着就是下一步确认密码即可,然后就一直下一步,直到如下图:
在这里插入图片描述
在这里插入图片描述
至此购买完毕,接下来就可以做一主三从的集群。
四台机器安装docker
在博客里有安装步骤。

九、Swarm集群搭建

在官网上这边主要看扩缩容
在这里插入图片描述
从官网上看到swarm怎么工作的:在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
告诉别人我在哪?
地址的话分为两个:私网(172.19.52.33我自己的,把这个作为主节点)和公网
接着是初始化节点,

docker swarm init --advertise-addr 172.19.52.33#这个是把这个内网地址配置为主节点,初始化advertise-addr这个参数(地址参数)

下图是配置:
在这里插入图片描述
docker swarm join 加入节点

获取令牌
docker swarm join-token manager
docker swarm join-token worke

在工作节点的服务器运行(在创建主节点时有的)docker swarm join --token SWMTKN-1-167sko93ihwbaxet1gz6x8qtejmddwhdnluwt08tb44c89lxa3-10vgrremjl1dp7bo6el1gznpf 172.19.52.33:2377如下图成功创建工作节点。
在这里插入图片描述
在主节点服务器运行:docker node ls如下图:
在这里插入图片描述
换一种方式加入主节点,即在主节点运行docker swarm join-token worker,生成一个令牌,然后在子节点运行。
主节点生成:
在这里插入图片描述
运行主节点生成的语句子节点运行加入:
在这里插入图片描述
主节点加入成功:
在这里插入图片描述
接着我们需要创建一个主节点,步骤是在我们第一个创建节点的地方运行docker swarm join-token manager,生成令牌,然后在要做主节点的服务器上运行该令牌。
主节点生成manager令牌:

在这里插入图片描述
服务器运行令牌:
在这里插入图片描述
新加的节点如图:
在这里插入图片描述
以上就是搭建节点的所有步骤,以后其他的添加节点一样。
总结:
1、生成主节点
2、加入节点(有两种角色:管理者,工作者《令牌都是在主节点生成的》)

十、Raft一致性协议了解

目前买了4台服务器,部署的就是双主双从,假设一个节点挂了!其他节点是否可以用。
Raft协议:保证大多数节点存活才可以用,至少要大于一台,集群的话是至少大于3台
实验:
1、将生成令牌的服务停止docker运行,宕机;因为是双主,另外一个主节点也不能用了。
在这里插入图片描述
会发现重启docker后这台服务器就不是leader了
在这里插入图片描述
2、让其中的一个工作节点离开我们的swarm(worker节点就是工作的,不能用docker node ls ):
离开节点的操作:
在这里插入图片描述
在主节点上查看确实是Down状态:
在这里插入图片描述
3、让离开的节点变成一个管理节点(只要在管理节点生成都可以):
在主节点上看,离开的工作节点变成了我们的管理节点。
在这里插入图片描述
现在,把最原先生成令牌的主节点docker停止,发现其他的节点能够正常运行,不像原先只有一个maneger节点会挂掉。
停止docker最开始的主节点:
在这里插入图片描述
在其他maneger节点可以看到:
在这里插入图片描述
停止的这台就变成不可达的了。
现在继续停止maneger节点,就回到我们实验1的样子
在这里插入图片描述
在这里插入图片描述

小结:
集群可用至少要保证3个主节点,随时要>1台管理节点是存活的。
Raft协议:保证大多数节点存活,才可以使用,保证高可用(如果管理节点是2,那么就不能宕机了,等于1是不能起来了这个集群)

十一、swarm集群弹性创建服务

以后将告别docker run;
docker-compose up 启动一个项目,是一个单机
集群:swarm docker service
容器=>服务
容器=>服务=>副本
比如redis服务它是由10个副本搭建的(可以理解同时开启10个redis容器)
在这里插入图片描述
体验(docker service ls):创建服务、查看信息、日志、回滚、动态扩展服务(scale 和update)。
在这里插入图片描述

灰度发布:金丝雀发布!

  1. 创建service(可以把他理解为以前的docker run,run是单机,现在是服务,有动态扩缩容的功能)
#创建服务
docker service create -p 8888:80 --name my-nginx nginx

在这里插入图片描述

docker run 容器启动,不具有扩缩容器的功能
docker service 服务!具有扩缩容器,回滚更新功能

查看服务docker service ls(RELPLICAS这个是副本,容器上只启动一个副本)在这里插入图片描述查看服务的详情docker service inspect my-nginx
在这里插入图片描述

之前查看docker的容器是docker ps

骚操作来了:
如果突然访问量大了,那么我们就加副本
先看看我们的命令帮助:
在这里插入图片描述
创建3个副本和my-nginx一样docker service update --replicas 3 my-nginx
在这里插入图片描述
去其他几个节点的服务器执行docker ps可以看到副本
在这里插入图片描述
是可以动态扩缩容的:
在这里插入图片描述
扩个10个 的副本,无非几个节点多扩一些。
动态缩到一个服务:在这里插入图片描述

去其他的服务器看没有了就只有一个my-nginx的服务
在这里插入图片描述
只要是个服务,集群中的任意节点都可以访问,服务可以有多个副本动态扩容实现高可用!
以上就是弹性扩缩容
比如:淘宝平时10台就够了,双11 就可以把充裕的服务器给动态扩容起来,形成服务的高可用以及服务器的高可用。
接下来使用scale命令来扩缩容,和update一样效果
扩展5个副本:docker service scale my-nginx=5和update一样
在这里插入图片描述

移除服务: docker service rm my-nginx
在这里插入图片描述
结果:用该命令查看服务(docker service ls)
在这里插入图片描述

docker swarm并不难,只要会搭建集群、会启动服务、动态管理容器就可以了。

十二、Swarm概念拓展学习

对以上的内容进行总结:
1、swarm
就是集群的管理和编排;docker可以初始化一个swarm集群,其他节点可以加入(可以以管理者节点或者工作者加入)
2、node
就是一个docker节点,多个集群就组成了一个网络集群。
3、service
任务,可以在管理节点或者工作节点来运行;是一个核心!用户访问的就是它
4、Task
容器内的命令,细节任务
在这里插入图片描述
swarm的流程:
命令->管理->api->调度->工作节点(创建Task容器维护创建)
服务有的能在全局跑(服务副本),有的只能在副本上跑(全局服务)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十三、Docker其他命令学习方式

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

十四、docker完结及展望

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值