一文读懂Docker之Docker Swarm集群平台搭建

devtools/2025/2/26 14:00:02/

目录

一、Docker Swarm简介

1、基本架构图

2、关键概念

(1)、Swarm

(2)、Node节点

(3)、service服务

(4)、task任务

3、工作模式

(1)、Node节点

(2)、Service服务

(3)、任务与调度

(4)、服务副本与全局服务

4、调度策略

5、集群模式特性

二、Docker Swarm集群部署

1、准备工作

(1)、主机规划:

(2)、分别修改manager、worker节点hostname

(3)、分别修改manager、worker节点hosts文件

(4)、关闭防火墙

docker-toc" name="tableOfContents" style="margin-left:40px">2、安装docker

(1)、切换镜像源

docker%E7%89%88%E6%9C%AC-toc" name="tableOfContents" style="margin-left:80px">(2)、查看当前镜像源中支持的docker版本

docker-ce-toc" name="tableOfContents" style="margin-left:80px">(3)、 安装特定版本的docker-ce

(4)、添加一个配置文件

docker-toc" name="tableOfContents" style="margin-left:80px">(5)、启动docker

docker%E7%8A%B6%E6%80%81%E5%92%8C%E7%89%88%E6%9C%AC-toc" name="tableOfContents" style="margin-left:80px">(6)、检查docker状态和版本

(7)、 配置解决镜像拉取慢的问题(每个节点均要执行)

docker%E5%9C%A8%E6%9C%AC%E6%9C%BA%E7%9A%84%E9%85%8D%E7%BD%AE%E7%9B%AE%E5%BD%95%C2%A0%EF%BC%8C%E6%AD%A4%E5%A4%84%E4%B8%BA%2Fetc%2Fdocker-toc" name="tableOfContents" style="margin-left:120px">步骤一、进入docker在本机的配置目录 ,此处为/etc/docker

步骤二、新建配置文件daemon.json,

docker-toc" name="tableOfContents" style="margin-left:120px">步骤三、重启docker

3、Manager节点创建Swarm集群

(1)、创建集群

(2)、查看集群信息

4、Worker节点加入集群


一、Docker Swarm简介

       

         Swarm是Docker公司推出的用来管理docker集群的平台,可以让用户很容易的部署跨主机的容器集群服务。Docker Swarm 和 Docker Compose 都是 Docker 官方容器编排项目,不同的是Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务。对于微服务的部署,显然 Docker Swarm 会更加适合。

        从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中,并且已经内置了服务发现工具。

  Swarm只是一个调度器(Scheduler)加路由器(router),它本身不运行容器,只接受Docker客户端发来的请求,调度适合的节点来运行容器。即使Swarm由于某些原因挂掉,集群中的节点也会正常运行,等到Swarm重新恢复运行后,它会收集重建集群信息。

1、基本架构图

       

         在结构图可以看出 ,Docker Client使用Swarm对集群(Cluster)进行调度使用。Swarm 集群由管理节点(manager)和工作节点(worker)构成。Swarm是典型的master-slave结构,通过发现服务来选举manager。manager是中心管理节点,各个node上运行agent接受manager的统一管理,集群会自动通过Raft协议分布式选举出manager节点,避免了单点的瓶颈问题,同时也内置了DNS的负载均衡和对外部负载均衡机制的集成支持。

2、关键概念

(1)、Swarm

        集群的管理和编排是使用嵌入docker引擎的SwarmKit,可以在docker初始化时启动swarm模式或者加入已存在的swarm。

(2)、Node节点

  • Manager节点:负责整个集群的管理,包括集群配置、服务管理等所有跟集群相关的工作。Manager节点选举一个leader节点去执行调度任务。
  • Worker节点:接收并执行从管理器节点分派的任务,参与容器集群负载调度,主要负责运行相应的服务(容器)来执行任务(task)。

(3)、service服务

        一个服务是工作节点上执行任务的定义。创建一个服务,指定了容器所使用的镜像和容器运行的命令。Service是运行在Worker节点上的task的描述,Service的描述包括使用哪个docker 镜像、服务网络、服务端口、服务副本数等。

(4)task任务

        一个任务包含了一个容器及其运行的命令。task是Service的执行实体,task启动docker容器并在容器中执行任务。

3、工作模式

(1)、Node节点

(2)、Service服务

(3)、任务与调度

(4)、服务副本与全局服务

4、调度策略

        Swarm在调度运行容器的时候,会根据指定的策略来计算最适合运行容器的Worker节点。目前支持的策略有:random、spread、binpack。

  • Random:随机选择一个Worker节点来运行容器
  • Spread:在同等条件下,Spread策略会选择运行容器最少的Worker节点来运行新的容器。使用Spread策略会使得容器均衡的分布在集群的各个Worker节点上。
  • Binpack:Binpack策略会把还未使用的节点留给需要更大空间的容器运行,尽可能的把容器运行在同一个节点上面,最大化避免容器碎片化。


http://www.ppmy.cn/devtools/162804.html

相关文章

FFmpeg+vvenc实现H.266的视频编解码教程

Linux系统:FFmpegvvenc实现H.266的视频编解码教程(视频压缩) 关键网址 ffmpeg目前支持libvvenc,因此配置好libvvenc只会在一些make、sudo make install命令时遇到问题,例如默认安装或配置路径指定错误、ffmpeg版本、v…

多源最短路径求解: Floyd-Warshall算法和Johnson 算法

多源最短路径问题是图论中的一个经典问题, 它要求找到图中所有顶点对之间的最短路径. 这个问题可以通过几种不同的算法来解决, 其中最为著名的包括 Floyd-Warshall Algorithm 和 Johnson’s Algorithm. Floyd-Warshall 算法 弗洛伊德-沃沙尔算法(Floyd-Warshall Algorithm) 是…

九九乘法表 matlab

J的第一行的1分别乘以I的九列数,就是1的乘法表 1*11 1*22 。。。

网页五子棋——项目部署

目录 安装 openjdk 安装 MySQL 创建数据库和数据表 修改 WebSocket 建立连接的 url 上传项目 在项目实现完成后,我们就可以将项目部署到云服务器上(在这里使用的是 Ubuntu) 我们先在服务器上安装 jdk、mysql 等 更新软件包&#xff…

【Mastering Vim 2_07】第六章:正则表达式和 Vim 宏在代码重构中的实战应用

【最新版《Mastering Vim》封面,涵盖 Vim 9.0 版特性】 文章目录 第六章 正则表达式和 Vim 宏在代码重构中的应用1 substitute 替换命令2 关于 substitute 的精确匹配3 参数列表 arglist 在跨文件操作中的应用4 Vim 正则表达式基础5 关于 magic 模式5.1 magic 模式5…

VSCode ssh远程连接内网服务器(不能上网的内网环境的Linux服务器)的终极解决方案

VSCode ssh远程连接内网服务器(不能上网的内网环境的Linux服务器) 离线下载vscode-server并安装: 如果远程端不能联网可以下载包离线安装,下载 vscode-server 的 url 需要和 vscode 客户端版本的 commit-id 对应.通过 vscode 面板的帮助->关于可以获…

npm i 失败权限问题

安装完node之后, 测试全局安装一个最常用的 express 模块进行测试 失败,但是用管理员权限打开cmd 安装就成功。 报错如下: npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and …

给小米/红米手机root(工具基本为官方工具)——KernelSU篇

目录 前言准备工作下载刷机包xiaomirom下载刷机包【适用于MIUI和hyperOS】“hyper更新”微信小程序【只适用于hyperOS】 下载KernelSU刷机所需程序和驱动文件 开始刷机设置手机第一种刷机方式【KMI】推荐提取boot或init_boot分区 第二种刷机方式【GKI】不推荐 结语 前言 刷机需…