Docker九 | Swarm mode

目录

Swarm基本概念

节点

服务和任务

创建Swarm集群

创建管理节点 

增加工作节点

 查看集群

部署服务

新建服务 

 查看服务

服务伸缩

增加服务 

 减少服务

删除服务


Swarm基本概念

节点

节点分为管理节点(manager)和工作节点(worker)

管理节点

管理节点用于Swarm集群的管理,docker swarm命令大多只能在管理节点执行。一个swarm集群可以有多个管理节点,但只有一个管理节点可以成为leader

工作节点

工作节点是任务执行节点,管理节点将服务下发至工作节点执行,管理节点也默认为工作节点。节点退出集群命令 docker swarm leave 可以在工作节点执行

服务和任务

任务(Task) 是Swarm中的最小调度单位,目前来说是一个单一的容器

服务(Service)是指一组任务的集合,服务定义了任务的属性。服务有如下两种模式:

  • replicated services按照一定规则在各个工作节点上运行指定个数的任务
  • global services每个工作节点上运行一个任务

两种模式通过docker service create的--mode参数指定

创建Swarm集群

创建管理节点 

本次创建包含一个管理节点和两个工作节点的最小Swarm集群 

在192.168.117.131下执行docker swarm init命令的节点自动成为管理节点

[root@localhost ~]# docker swarm init --advertise-addr 192.168.117.131
Swarm initialized: current node (mn0xmlobseurosjh9ylsex0uq) is now a manager.

To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-3x9heaku0p7o99e56rwng3opbvtgbrtfnpavdewbrpgu8joojn-cjv34fhoz2aaqeewe6ga0ceof 192.168.117.131:2377

To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

增加工作节点

在192.168.117.130和192.168.117.132下执行如下命令使之成为工作节点加入到集群中

docker swarm join --token SWMTKN-1-3x9heaku0p7o99e56rwng3opbvtgbrtfnpavdewbrpgu8joojn-cjv34fhoz2aaqeewe6ga0ceof 192.168.117.131:2377

成功会有如下反应

 查看集群

在管理节点执行如下命令

[root@localhost ~]# docker node ls
ID                            HOSTNAME                STATUS    AVAILABILITY   MANAGER STATUS   ENGINE VERSION
mn0xmlobseurosjh9ylsex0uq *   localhost.localdomain   Ready     Active         Leader           24.0.7
pifvf9mr1ggvez9o92067gv60     localhost.localdomain   Ready     Active                          24.0.6
xdedgykahub32jyh09yeupbim     localhost.localdomain   Ready     Active                          24.0.6

部署服务

新建服务 

 在创建的Swarm集群中运行nginx服务

[root@localhost ~]# docker service create --replicas 3 -p 80:80 --name nginx nginx:1.13.7-alpine
hzb8ckdfjjrq7lmrgplhclblm
overall progress: 3 out of 3 tasks 
1/3: running   
2/3: running   
3/3: running   
verify: Service converged 

发现三种ip节点都可以访问nginx

 查看服务

 查看当前Swarm集群运行的服务

[root@localhost ~]# docker service ls
ID             NAME      MODE         REPLICAS   IMAGE                 PORTS
hzb8ckdfjjrq   nginx     replicated   3/3        nginx:1.13.7-alpine   *:80->80/tcp

查看某个服务的详情

[root@localhost ~]# docker service ps nginx 
ID             NAME      IMAGE                 NODE                    DESIRED STATE   CURRENT STATE            ERROR     PORTS
s18jve694hof   nginx.1   nginx:1.13.7-alpine   localhost.localdomain   Running         Running 15 minutes ago             
kukdiwkwzbk0   nginx.2   nginx:1.13.7-alpine   localhost.localdomain   Running         Running 15 minutes ago             
dutte36gcuqq   nginx.3   nginx:1.13.7-alpine   localhost.localdomain   Running         Running 15 minutes ago  

查看某个服务的日志

[root@localhost ~]# docker service logs nginx

服务伸缩

增加服务 

[root@localhost ~]# docker service scale nginx=5
nginx scaled to 5
overall progress: 5 out of 5 tasks 
1/5: running   
2/5: running   
3/5: running   
4/5: running   
5/5: running   
verify: Service converged 
[root@localhost ~]# 

 减少服务

[root@localhost ~]# docker service scale nginx=2
nginx scaled to 2
overall progress: 2 out of 2 tasks 
1/2: running   
2/2: running   
verify: Service converged 
[root@localhost ~]# 

删除服务

[root@localhost ~]# docker service rm nginx
nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/282862.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【JavaFX】JDK11 基于Gson、hutool、Jackson持久化存储实体类数据的解决方案 (读取、追加、去重json对象)

文章目录 开发环境效果前言一、Gson是什么?二、使用步骤1.引入依赖2.创建实体类创建 JsonFileService类创建JsonFileService的实现类 JsonFileServiceImpl三、实现效果开发环境 JDK11IDEA 2023.3Gson、hutool、JacksonJavaFX 11效果 前言 使用JDK1

Langchain-Chatchat开源库使用的随笔记(一)

笔者最近在研究Langchain-Chatchat,所以本篇作为随笔记进行记录。 最近核心探索的是知识库的使用,其中关于文档如何进行分块的详细,可以参考笔者的另几篇文章: 大模型RAG 场景、数据、应用难点与解决(四)R…

Spring Cloud + Vue前后端分离-第10章 基于阿里云OSS的文件上传

源代码在GitHub - 629y/course: Spring Cloud Vue前后端分离-在线课程 Spring Cloud Vue前后端分离-第10章 基于阿里云OSS的文件上传 前面介绍的文件上传是基于本地文件服务器的文件上传,但是自己搭文件服务器会有很多运维的问题,比如磁盘满了要扩容…

VMware安装RHEL9.0版本Linux系统

最近在学习Linux,安装了Red Hat Enterprise Linux 的 9.0版本,简称RHEL9.0。RHEL9.0是Red Hat公司发布的面向企业用户的Linux操作系统的最新版本。我把它安装在虚拟机VMware里来减少电脑性能占用,也防止系统炸搞得我后面要重装。安装RHEL9.0还…

【Unity入门】MenuItem 和 ContextMenu 的使用方法

目录 一、ContextMenu描述使用示例ContextMenuItem使用示例 二、MenuItem描述使用示例 三、MenuItem 和 ContextMenu 的区别 一、ContextMenu 描述 ContextMenu 属性用于向上下文菜单添加命令。 在该附加脚本的 Inspector 中,当用户选择该上下文菜单时&#xff0c…

FA组件详解

1、了解FA核心组件以及功能 (1)TC(Thin Client:瘦终端):就是类似于机顶盒的一个小盒子,里面有CPU、内存、USB、MIC、HDMI等接口,可以理解为小型电脑,但是它里面是没有操作…

Unity 新版 Meta XR SDK 无法导入解决方法

文章目录 📕教程说明📕新版 SDK 说明📕从 Meta 官网导入开发包⭐依赖包⭐如何导入⭐导入后包存放在哪里了?⭐场景样例文件去哪了? 此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatia…

Django 学习教程-介绍与安装

系列 Django 学习教程-第一个 Django 应用-CSDN博客 介绍 Django 是一个高级 Python Web 框架,它鼓励快速开发和干净、实用的设计。 它由经验丰富的开发人员构建,解决了 Web 开发的大部分麻烦,因此您可以专注于在编写应用程序时无需重新发…

C# vs报错 id为XX的进程当前未运行

报错原因:虚拟目录端口被占用 解决方法:重新配置新的目录端口就行 1、选择项目属性 2、更改端口号,点击创建虚拟目录 3、重新生成项目

使用python快速开发与PDF文档对话的Gemini聊天机器人

检索增强生成(Retrieval-augmented generation,RAG)使得我们可以让大型语言模型(LLMs)访问外部知识库数据(如pdf,word、text等),从而让人们可以更加方便的通过LLM来学习外部数据的知识。今天我们将利用之前学习到的RAG方法,谷歌Gemini模型和l…

「微服务」Saga 模式 如何使用微服务实现业务事务-第二部分

在上一篇文章中,我们看到了实现分布式事务的一些挑战,以及如何使用Event / Choreography方法实现Saga的模式。在本文中,我们将讨论如何通过使用另一种类型的Saga实现(称为Command或Orchestration)来解决一些问题&#…

Ps:三角形工具

三角形工具 Triangle Tool可以绘制三角形形状(矢量形状,或者是基于像素的形状)和路径(形状轮廓)。 快捷键:U ◆ ◆ ◆ 常用操作方法与技巧 1、一般使用拖拽的方式绘制三角形。也可直接在画布上点击&#…

【2023】hadoop基础介绍

💻目录 Hadoop组成HDFSHDFS操作HDFS分布式文件存储NameNode元数据数据读写流程 YARN和MapReduceMapReduce:分布式计算YARN:资源管控调度YARN架构提交任务到**YARN中运行** Hadoop组成 hadoop安装教程可以看我这篇文章> 🍅hado…

数据结构—树的应用

文章目录 11.树的应用(1).Huffman树#1.加权外部路径长度#2.Huffman算法#3.Huffman编码 (2).二叉搜索树#1.基本定义#2.查找#3.插入结点#4.构建树#5.查找最小值和最大值#6.删除结点#7.一个问题 (3).平衡搜索树#1.满二叉树、完全二叉树和丰满二叉树#2.平衡因子和平衡树#3.左旋与右…

深入解析泛型

一、泛型的诞生 在C#1 中我们还没有泛型的时候我们收集数据通常需要使用到数组,或者使用封装好的数组集合Hashtable ArrayList。 举个例子: 我们在读取文件的时候就会需要一个数组来储存读取的数据的内容 但我们并不知数据的具体长度也就无法在声明的…

2021-05-08 51单片机74HC164、74LS164、74HCT164、74HC154、74HCT154应用三极管控制继电器

74HC164、74HCT164是8位边沿触发式移位寄存器,串行输入数据,然后并行输出。数据通过两个输入端(DSA或DSB)之一串行输入;任一输入端可以用作高电平使能端,控制另一输入端的数据输入。两个输入端或者连接在一…

【低代码平台】10个开源免费Airtable 的替代方案

Airtable是一个易于使用的简单低代码平台,有助于团队协作管理复杂的数据表,并创建定制的工作流程。把它想象成一个类固醇上的云电子表格。 Airtable还简化了数据输入过程,连接和集成第三方服务和应用程序,并提供了许多数据导入/导…

web综合大实验!!!

目录 一、要求 二、操作步骤 第一步:关闭防火墙+SeLinux 第二步:挂载 第三步:编辑配置文件 第四步:安装软件包 1、安装httpd 2、安装mod_ssl模块 第五步:定义主配置文件 1、创建首页文件 2、重启…

7.java——异常

异常——error(资源耗尽,JVM内部系统错误,代码一般处理不了)和excption(数组越界,空指针访问,代码可以处理) java.lang.Throwable;异常体系的根父类 -------java.lang.Error:错误。…

第三部分 连续型需要的积分

目录 温馨提示: 求积分 求分段函数在确定区间的定积分 方法: 例1 例2 例3 例4 例5 例6 例7 求分段函数在到未知数的定积分 方法: 例8 求简单的二重积分 方法: 例9 例10 例11 求f(x,y)的二重积分 方法: 例12 例13 …