当前位置: 首页 > news >正文

Docker三剑客之swarm

一、什么是docker swarm

Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm, 它是将一群Docker宿主机变成一个单一的虚拟主机,Swarm使用标准的Docker API接口作为其前端的访问入口,换言之,各种形式的Docker Client(compose,docker-py等)均可以直接与Swarm通信,甚至Docker本身都可以很容易的与Swarm集成,这大大方便了用户将原本基于单节点的系统移植到Swarm上,同时Swarm内置了对Docker网络插件的支持,用户也很容易的部署跨主机的容器集群服务。

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

从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中(docker swarm),并且已经内置了服务发现工具,我们就不需要像之前一样,再配置 Etcd 或者 Consul 来进行服务发现配置了。

docker info 可以看到此时集群是 inactive 状态, 如果集群成功启动,Swarm 的状态就变成了 active。
在这里插入图片描述
在这里插入图片描述

二、docker swarm 命令

docker swarm --help

在这里插入图片描述

2.1 init

docker swarm init

在这里插入图片描述

2.2 join-token

以什么样的角色加入swarm集群,worker 和 manager

docker swarm join-token worker

在这里插入图片描述

可以使用产生的token将其他机器加入到集群。

docker swarm join --token SWMTKN-1-02ndmbk1ld2s6kgu8sx3f1oy2yrc1ocekald8fvi46lto2wb8v-chsch9zcu9te4ezhtdrjr7ytz 10.xxx.xxx.12:2377

使用 docker node ls 查看当前集群的信息,注意:改命令只能在manager节点上执行。

docker node ls

在这里插入图片描述

2.3 leave

离开集群,普通的节点可以直接离开,manager节点需要–force。

docker swarm leave  # worker节点 直接离开
docker swarm leave --force  # master 节点需要使用 --force参数,强制离开

在这里插入图片描述

2.4 unlock

在集群主节点异常掉线后,如果想要再次加入就必须unlock。为什么要这么设计呢?如果直接让它加进来,可能会出现多个leader,也就是脑裂的情况。unlock就是解决这种情况的。 注意:解锁要基于现有的集群,并且已经产生了新的leader。

场景模拟: 我们以manager的角色创建一个三个节点的集群。假设,现在有三台机器,A B C

在A上执行

docker swarm join-token manager

在B C 上分别执行在A机器上产生的token:

docker swarm join --token SWMTKN-1-5l15gcri88qwzvr48lln0ej78a9txvuh0r5vt8itq418wb8ntz-ehkltnukogmxlqk9qts7u20hl 10.xxx.xxx.12:2377

在这里插入图片描述三台机器中,有一台是leader,另外两台是候选者。也就当leader出现问题的时候,可以顶上去。

以下操作都是在机器A中

接着,修改集群的ca证书。什么时候修改证书呢?我们的秘钥可能泄漏,或者存在安全风险时或者证书过期(一般有限期是一年),需要替换新的证书。

2.5 ca 修改证书

docker swarm ca --rotate

在这里插入图片描述

2.6 update 更新集群

docker swarm update --autolock=true
docker swarm unlock-key    # 获取集群秘钥

会返回给我们一个秘钥,如果没有记住秘钥,可以使用
在这里插入图片描述
我们停掉机器A上的docker,模拟master 节点宕机。

systemctl stop docker

然后,会在剩下的B C 机器中选一个leader出来(需要一定的时间)。选举成功后,可以使用 docker node ls 查看。
在这里插入图片描述此时机器A已经处于下线状态,并且新的Leader已经成功选举。

接着,我们重启机器A的docker, 使用docker ps 等指令也能启动docker。此时使用 docker info 查看自己Swarm的状态变成了locked。
在这里插入图片描述
也就是说,此时的机器A向重新加入集群要先解锁。去B或者C上,执行 docker swarm unlock-key 拿到秘钥,再执行以下命令进行解锁,解锁完查看docker info,此时Swarm的状态就是active了

docker swarm unlock # 回车,输入获得的秘钥即可解锁

在这里插入图片描述
最后去B 或者 C 查看集群信息,可以看到此时 A 已经成功加入到集群了。
在这里插入图片描述

三、节点管理

在这里插入图片描述

3.1 demote

将主节点降级为worker节点。

docker node demote HOSTNAME

3.2 promote

将worker节点升级为master节点。

docker node promote HOSTNAME

3.3 inspect

查看节点的详细信息。

docker node inspect HOSTNAME

3.4 ls

查看集群节点信息。

docker node ls

3.5 ps

查看节点的应用信息。

docker node ps HOSTNAME

3.6 rm

删除一个节点。跟 leave的区别:docker swarm leave 虽然离开了集群,但是记录还在。完整流程应该是:先 rm 再 leave 。

docker node rm HOSTNAME

3.7 update

更新节点。

在这里插入图片描述

推荐一个零声学院免费教程,个人觉得老师讲得不错,
分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:

相关文章:

Docker三剑客之swarm

一、什么是docker swarm Swarm是Docker公司推出的用来管理docker集群的平台,几乎全部用GO语言来完成的开发的,代码开源在https://github.com/docker/swarm, 它是将一群Docker宿主机变成一个单一的虚拟主机,Swarm使用标准的Docker…...

Lucene Solr Elasticsearch三者之间的关系,怎么选?

Lucene简介: Lucene主要用于构建文本搜索应用程序,包括Web搜索引擎、桌面搜索工具和商业应用程序。它提供了诸如单词分析、查询解析、搜索结果排序等功能,可以轻松地在大量文档中快速搜索和查找相关信息。 Lucene具有以下特点: …...

为你的网站加上Loading等待加载效果吧 | Loading页面加载添加教程

为你的网站加上Loading等待加载效果吧 | Loading页面加载添加教程 效果图 : 教程开始 新建一个loading样式css 将以下代码放进去 然后引用这个文件 code #Loadanimation{ background-color:#fff; height:100%; width:100%; position:fixed; z-index:1; ma…...

Redis安装和配置

网上有海量的Redis文章,写的都很详细。这里就是简单记录一下自己查aof问题过程中遇到的问题,主要是aof文件所在目录在redis.conf里的位置 1。在ubuntu16上安装Redis sudo apt-get install -y redis-server 2。修改redis配置 sudo vim /etc/redis/re…...

MobTech|如何使用秒验

什么是秒验? 秒验是MobTech公司提供的一款实现一键验证功能的产品,从根源上降低企业验证成本,有效提高拉新转化率,降低因验证带来的流失率,3秒完成手机号验证(一键登录)。 秒验主要整合了三大…...

CSS实现自动分页打印同时每页保留重复的自定义内容

当需要打印的内容过长时系统会产生自动分割页面&#xff0c;造成样式不太美观。使用CSS的 media print 结合 <table> 可以实现对分页样式的可控。效果如下&#xff1a; 假设有50条数据&#xff0c;打印时系统会自动分成两页&#xff0c;同时每页保留自定义的header和foo…...

基于prometheus的监控告警怎么实现?

基于 Prometheus 的监控告警实现一般需要以下几个步骤&#xff1a; 安装和配置 Prometheus&#xff1a;安装 Prometheus 并配置好需要监控的目标。可以使用 Prometheus 的配置文件&#xff08;prometheus.yml&#xff09;来指定需要监控的目标&#xff0c;例如服务、主机、容器…...

2007年4月全国计算机等级考试二级JAVA笔试试题及答案

2007年4月全国计算机等级考试二级JAVA笔试试题及答案 一、选择题 &#xff08;1&#xff09;已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF&#xff0c;则该二叉树的后序遍历为 A&#xff0e;GEDHFBCA B&#xff0e;DGEBHFCA C&#xff0e;ABCDEFGH D&#xff0e;…...

灌水玩玩 ChatGPT AIGC生成的有栈协同程序实现(例子)

CO&#xff1a; 你是一名 C/C 高级软件工程师。 请使用 stackful 协程&#xff0c;实现一个 Sleep 随眠的协同程序&#xff0c;注意并非 stackless 协程&#xff0c;不允许使用 C/C 17 以上的语言标准实现&#xff0c;允许使用 boost 基础框架类库。 ChatGPT&#xff1a; 好的…...

【砝码称重】暴力DFS(一半分)+ dp(可AC)

题目描述&#xff1a; 题目分析&#xff1a; 我也没有完全搞太明白&#xff0c;简单说说我的理解 1.dp【i】【j】表示前 i 个砝码&#xff0c;是否可以称出来重量为 j 的物品&#xff0c;如果可以的话&#xff0c;值为1&#xff0c;不可以 为0&#xff1b; 2.针对当前第 i 个…...

科大奥瑞物理实验——霍尔效应实验

实验名称&#xff1a;霍尔效应实验 1. 实验目的&#xff1a; 了解霍尔效应测量磁场的原理和方法&#xff1b;观察磁电效应现象&#xff1b;学会用霍尔元件测量磁场及元件参数的基本方法。 2. 实验器材&#xff1a; QS-H型霍尔效应实验仪 磁针 QS-H型霍尔效应测试仪 双刀开关…...

2023_深入学习HTML5

H5 基于html5和 css3和一部分JS API 结合的开发平台(环境) 语义化标签 header : 表示头部&#xff0c;块级元素 footer &#xff1a; 表示底部&#xff0c;块级元素 section &#xff1a;区块 nav &#xff1a; 表示导航链接 aside &#xff1a; 表示侧边栏 output &am…...

Apache iotdb-web-workbench 认证绕过漏洞(CVE-2023-24829)

漏洞简介 ​​ 影响版本 0.13.0 < 漏洞版本 < 0.13.3 漏洞主要来自于 iotdb-web-workbench​ IoTDB-Workbench是IoTDB的可视化管理工具&#xff0c;可对IoTDB的数据进行增删改查、权限控制等&#xff0c;简化IoTDB的使用及学习成本。iotdb-web-workbench​ 中存在不正…...

【7-1】Redis急速入门与复习

文章目录1、分布式架构概述本阶段规划什么是分布式架构单体架构与分布式架构 对比分布式架构优点分布式架构缺点设计原则2、为何引入Redis现有架构的弊端3、什么是NoSql&#xff1f;NoSqlNoSql优点NoSql常见分类4、什么是分布式缓存&#xff0c;什么是Redis&#xff1f;什么是分…...

5、操作系统——进程间通信(3)(system V-IPC:消息队列)

目录 1、管道的缺点 2、消息队列 3、消息队列的API &#xff08;1&#xff09;获取消息队列的ID&#xff08;类似文件的描述符&#xff09;(msgget) &#xff08;2&#xff09;发送、接收消息(msgrcv) (3)获取和设置消息队列的属性&#xff08;msgctl&#xff09; 4、消息队…...

C++vector容器用法详解

一、前言vector 是封装动态数组的顺序容器&#xff0c;连续存储数据&#xff0c;所以我们不仅可以通过迭代器访问存储在 vector 容器中的数据&#xff0c;还能用指向 vector 容器中的数据的常规指针访问数据。这意味着指向 vector 容器中的数据的指针能传递给任何期待指向数组元…...

Log4j2的Loggers详解

引言 官方配置文档&#xff1a;https://logging.apache.org/log4j/2.x/manual/filters.html Loggers节点 Loggers节点常见的有两种:Root和Logger <Loggers><Logger name"org.apache.logging.log4j.core.appender.db" level"debug" additivity&qu…...

计算机视觉的应用1-OCR分栏识别:两栏识别三栏识别都可以,本地部署完美拼接

大家好&#xff0c;我是微学AI&#xff0c;今天给大家带来OCR的分栏识别。 一、文本分栏的问题 在OCR识别过程中&#xff0c;遇到文字是两个分栏的情况确实是一个比较常见的问题。通常情况下&#xff0c;OCR引擎会将文本按照从左到右&#xff0c;从上到下的顺序一行一行地识别…...

低代码平台如何选型, 43款国内外低代码平台一网打尽

目前&#xff0c;零代码技术和低代码技术越来越成熟&#xff0c;低代码平台也越来越被大家所接受&#xff0c;国内低代码平台厂商和产品层出不穷&#xff0c;到底哪家低代码平台好&#xff0c;企业如何选型&#xff0c;以下给出一些参考。 一、低代码平台如何选型 企业如何选…...

第六周作业(1.5小时)

一、PreparedStatement PreparedStatement也可以用来执行sql语句&#xff0c;但是需要注意&#xff1a;它需要用sql创建好PreparedStatement&#xff0c;而Statement不需要用sql来创建。 优点&#xff1a; 1、具有较好的可维护性和可读性&#xff0c;参数的分别插入减少了错…...

从失败案例看全球化内容服务的合规架构与自动化风控实践

1. 项目概述与背景解析最近在和一些做全球化内容分发或者跨国协作项目的朋友交流时&#xff0c;大家普遍会提到一个词&#xff1a;“内容合规性审查”。这听起来像是一个法务或者运营的术语&#xff0c;但对我们这些搞技术、做开发的人来说&#xff0c;它背后其实是一整套复杂的…...

Linux驱动开发实战:手把手教你为GT1151触摸屏编写I2C+Input+中断驱动(基于F1C200S)

Linux驱动开发实战&#xff1a;GT1151触摸屏I2CInput中断驱动全解析 1. 嵌入式Linux驱动开发概述 在嵌入式系统开发中&#xff0c;触摸屏作为人机交互的核心组件&#xff0c;其驱动开发一直是工程师必须掌握的技能。GT1151作为一款广泛应用于嵌入式设备的电容式触摸屏控制器&am…...

【限时开放】NotebookLM气候专项Prompt Library(含AR6 WGII章节级语义索引模板):仅向高校科研组开放72小时

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;NotebookLM气候研究辅助概述 NotebookLM 是 Google 推出的基于人工智能的文档理解与推理工具&#xff0c;专为研究人员设计&#xff0c;支持上传 PDF、TXT 等格式的学术文献、观测报告及政策文件&#xff0c;…...

Adobe-GenP 3.0终极指南:5分钟快速激活Adobe全系列专业软件

Adobe-GenP 3.0终极指南&#xff1a;5分钟快速激活Adobe全系列专业软件 【免费下载链接】Adobe-GenP Adobe CC 2019/2020/2021/2022/2023 GenP Universal Patch 3.0 项目地址: https://gitcode.com/gh_mirrors/ad/Adobe-GenP Adobe-GenP是一款专门为Adobe Creative Clou…...

基于RAG的代码库智能助手:从原理到本地化部署实战

1. 项目概述&#xff1a;一个为开发者打造的“智能副驾”最近在GitHub上看到一个挺有意思的项目&#xff0c;叫maziminds/manage-buddy。光看名字&#xff0c;你可能会觉得它是个任务管理工具&#xff0c;或者是个团队协作软件。但当你真正点进去&#xff0c;仔细研究它的READM…...

如何在卡片悬停时添加内边距而不引起布局偏移

本文详解如何通过 box-sizing: border-box、合理设置宽高约束及子元素尺寸策略&#xff0c;在卡片 hover 时安全添加 padding&#xff0c;避免因盒模型计算导致的布局抖动或相邻卡片位移。 本文详解如何通过 box-sizing: border-box、合理设置宽高约束及子元素尺寸策略&am…...

从STK仿真到链路决策:低轨卫星网络静态拓扑构建实战解析

1. 低轨卫星网络静态拓扑基础认知 第一次接触卫星网络拓扑时&#xff0c;我被各种专业术语绕得头晕。直到把STK软件里的卫星模型调出来&#xff0c;看着那些在三维空间规律运转的小圆点&#xff0c;才真正理解什么是静态拓扑。简单来说&#xff0c;就是在不考虑卫星实时运动的情…...

使用Taotoken后我们如何观测与优化大模型API调用成本

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 使用Taotoken后我们如何观测与优化大模型API调用成本 1. 从黑盒到透明&#xff1a;成本观测的第一步 在接入大模型API的初期&…...

如何快速构建高质量平行语料库:Lingtrain Aligner智能文本对齐完全指南

如何快速构建高质量平行语料库&#xff1a;Lingtrain Aligner智能文本对齐完全指南 【免费下载链接】lingtrain-aligner Lingtrain Aligner — ML powered library for the accurate texts alignment. 项目地址: https://gitcode.com/gh_mirrors/li/lingtrain-aligner 平…...

终极免费解决方案:番茄小说下载器的完整使用指南

终极免费解决方案&#xff1a;番茄小说下载器的完整使用指南 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 在数字阅读时代&#xff0c;你是否经常遇到网络小说格式不兼容、内…...