作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122739329
目录
前言:
第1章 swarm概述
1.1 菜鸟教程
1.2 简介
1.3 辅助协作工具
1.4 Docker Swarm与Docker关系
1.4 Docker Swarm主机的来源
1.6 Docker Swarm与K8S
第2章 swarm业务场景特点和系统架构
2.1 业务场景的特点
2.2 总体架构
2.3 详细架构
第3章 swarm搭建集群服务的主要过程
3.1 节点的创建与管理
3.2 服务的创建、分配、与管理
微服务docker应用的推广,在一个系统中出现大量的docker实例的运行,不同的docker镜像,其功能不同,相同的docker镜像,不同的docker实例,用于分担不同的负载。为了对这些docker进行统一的管理,就需要对这些docker的角色进行划分,对外提供少数的统一接口,对内进行业务调度。而作为独立个体的docker是无法做到这一点的,这就需要新的工具来注册、管理、协同一个个独立的docker,这就是swarm。
Swarm 集群管理 | 菜鸟教程
Docker Swarm 是 Docker 的集群管理工具。
它将内部运行中的Docker主机池,转变为对外呈现的单个虚拟 Docker 主机(对外看到的是一个docker主机,而不是一个docker主机集群)
Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
Docker Swarm主要任务是:在现有的多个docker主机的基础之上,把所有的现有的docker主机以及他们的docker应用看成一个整体,构建出一个虚拟的、处理能力弹性变化的虚拟的docker主机。
有了Docker Swarm,对外看到的是一个docker主机,是一个整体,而对是一个无数个主机组成的Docker主机集群, 他们在Docker Swarm的调度和管辖下,统一提供对外服务。
打一个不缺当的比喻,如果把docker集群,比喻成一个集团公司的,Docker Swarm就是集团公司的最高管理层。
Docker Swarm是docker内生的功能,因此不需要独立安装相关的软件。
我们只使用Docker Swarm提供的新的命令,把多个不同的docker主机,进行集群化组网,进行各自角色的分工。
Docker Swarm所管辖的是docker主机以及docker上的docker应用。其主机的主要来源有
备注:必须先在docker主机上安装docker引擎,因为Docker Swarm的功能是内嵌在docker中的。
docker swarm 与kubernetes都是集群管理工具,docker swarm 是docker 原生自带,kubernetes是谷歌项目下的容器编排工具。
swarm:轻量级的集群管理工具
Swarm是Docker公司在2014年12月初发布的一套用来管理Docker集群的较为简单的工具,由于Swarm使用标准的Docker API接口作为其前端访问入口,所以各种形式的Docker Client(dockerclient in go, docker_py, docker等)都可以直接与Swarm通信。随着Swarm0.2发布,swarm增加了新的策略来调度集群中的容器方式,使得在可用的节点上传播它们,以及支持更多的Docker命令以及集群驱动。
kubernetes:重量级的集群管理工具
kubernetes,是Google多年大规模容器管理技术的开源版本,是众多厂商推崇的docker管理优秀之作,随着越来越多的厂商不停地贡献代码,kubernetes功能也愈发完善。
好的软件架构是为业务服务的,不同的业务场景,需要有适合的系统架构与之配合。
(1)高可用性:
“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。互联网业务要求提供7*24小时不间断服务。
(2)高并非性:
高并发是现在互联网分布式框架设计必须要考虑的因素之一,它是可以保证系统能被同时并行处理很多请求,对于高并发来说,它的指标有:
响应时间:系统对进来的请求反应的时间,比如你打开一个页面需要1秒,那么这1秒就是响应时间。
吞吐量:吞吐量是指每秒能处理多少请求数量,好比你吃饭,每秒能吃下多少颗米饭。
秒查询率:秒查询率是指每秒响应请求数,和吞吐量差不多。
并发用户数:同时承载正常使用系统功能的用户数量。例如一个即时通讯系统,同时在线量一定程度上代表了系统的并发用户数。
(3)高扩展性:
网站通过集群的方式将多台服务器组成一个整体,共同提供服务。所谓伸缩性是指通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求。
swarm把运行docker的主机集群,按照角色分为管理节点(manager)和工作节点(work node)。
如下图所示:
(1)swarm mananger
(2)swarm work node
(3)节点之间的通信
(4)service服务:
注意:跟集群管理有关的任何操作,都是在管理节点上操作的。
步骤1:创建 swarm 集群管理节点(manager)
先创建管理节点,创建管理节点的方式有:
然后通过进入swarm主机,加入到集群中,执行相关命令
$ docker-machine ssh swarm-manager
$ docker swarm init
步骤2:创建 swarm 集群工作节点(worker)
先创建管理节点,创建管理节点的方式有:
然后通过进入swarm主机,加入到集群中,执行相关命令
$ docker swarm join
步骤3:在管理节点查看集群信息:docker info
步骤4:把docker服务部署到集群中
docker service create
步骤5:查看服务部署情况
~$ docker service ps
步骤6:扩展服务实例
docker service scale helloworld=2
步骤7:删除服务
$ docker service rm helloworld
步骤8:滚动升级服务
$ docker service create --replicas 1
步骤9:停止某个节点接收新的任务
$ docker node update --availability drain swarm-worker1
$ docker node update --availability active swarm-worker1
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客
本文网址:https://blog.csdn.net/HiWangWenBing/article/details/122739329