Docker中swarm管理工具

Docker中swarm管理工具

1 安装swarm

swarm是Docker自带的容器集群管理工具。

1.1 集群IP

主机名ip地址网卡名软件
master192.168.108.201ens33Docker
node1192.168.108.202ens33Docker

修改主机名

# 管理节点,修改主机名
hostnamectl set-hostname master# 子节点,修改主机名
hostnamectl set-hostname node1# 查看主机名
hostname

1.2 master节点

# 初始化Manager节点的swarm
docker swarm init --advertise-addr 192.168.108.201# 返回值
Swarm initialized: current node (7jq3yqkt84eoivhnuiubz850m) is now a manager.To add a worker to this swarm, run the following command:docker swarm join --token SWMTKN-1-09b9ti7lmz8bkuzfqy3hqra9g0vrczxkjfynwmrtroy9b4rv47-321reydmf5huvndx4ung11d69 192.168.108.201:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.

1.3 node1节点

# 将node1节点加入集群
docker swarm join --token SWMTKN-1-09b9ti7lmz8bkuzfqy3hqra9g0vrczxkjfynwmrtroy9b4rv47-321reydmf5huvndx4ung11d69 192.168.108.201:2377

2 Swarm常用命令

2.1 查看节点Token

# 查看工作节点的 token
docker swarm join-token worker# 查看管理节点的 token
docker swarm join-token manager

2.2 查看集群节点状态

# 查看集群
docker node ls# 返回值
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
7jq3yqkt84eoivhnuiubz850m *   master              Ready               Active              Leader              18.09.6
wt3u2sue87bawx6iytkckvqg0     node1               Ready               Active                                  18.09.6

2.2 管理节点

# 查看node1节点详情
docker node inspect node1# 将node1节点升级,由工作节点升级为管理节点,node1的MANAGER STATUS变为Reachable
docker node promote node1# 将node1节点降级,由管理节点降级为工作节点
docker node demote node1# 更新node1节点
docker node update node1# 查看当前节点中任务
docker node ps# 删除node1节点(-f强制删除)
docker node rm node1

2.3 服务管理

1 创建服务

# 在两个节点上获取镜像
docker pull nginx:1.20.0# 创建3个nginx服务,swarm会自动将容器分配到不同的宿主机上
docker service create --replicas 3 -p 80:80 --name nginx nginx:1.20.0

2 查看服务

# 查看服务
docker service ls# 查看当前节点中任务
docker node ps# 查看服务日志
docker service logs nginx# 查看服务的详情
docker service inspect nginx

3 服务扩容与缩减

# 扩容
docker service scale nginx=5# 缩减
docker service scale nginx=2

4 删除服务

docker service rm nginx

3 使用overlay网络实现容器跨宿主机互联

推荐使用swarm集群服务,此方法不够灵活,容器被固定在了不同的宿主机中。

3.1 创建overlay网络

# 注意必须添加--attachable参数,否则会报如下错误: docker: Error response from daemon: Could not attach to network overlay-cluster: rpc error: code = PermissionDenied desc = network overlay-cluster not manually attachable.# --attachable: 表示可以手动挂载容器
docker network create --driver overlay overlay-cluster --attachable

3.2 创建容器

在不同的宿主机上创建alpine容器

# 在master节点上创建容器
docker run -itd --rm --name alpine-master --net overlay-cluster alpine:3.13.0 /bin/sh# 在node1节点上创建容器
docker run -itd --rm --name alpine-node1 --net overlay-cluster alpine:3.13.0 /bin/sh

3.3 不同宿主机的容器的通信

# 进入master节点上的容器
docker exec -it alpine-master /bin/sh# ping node1上的alpine-node1
ping alpine-node1

在这里插入图片描述

4 Docker Stack大规模部署管理

Docker Stack解决大规模部署管理问题,Docker引擎在1.12 版本集成了Docker Swarm, 内置新的容器编排工具docker stack,通过提供期望状态、滚动升级、简单易用、扩缩容、健康检查等特性简化了应用的管理。

4.1 使用docker-compose创建应用

docker-compose.yml

version: "3.7"
services:mysql:image: nginx:1.20.0hostname: nginxnetworks:- overlayports:- 80:80deploy:mode: replicatedreplicas: 3networks:overlay:

4.2 常用命令Docker Stack

部署docker-compose文件

# 部署新stack或更新现有stack
# -c 参数指定 compose文件
# stack的名称 nginx-stack
docker stack deploy -c docker-compose.yml nginx-stack# 返回值
Creating network nginx-stack_overlay
Creating service nginx-stack_mysql# 此时可以访问80端口的nginx服务
http://192.168.108.201/

nginx截图

在这里插入图片描述

查看stack信息

# 显示stack列表
docker stack ls	
# 返回值
NAME                SERVICES            ORCHESTRATOR
nginx-stack         1                   Swarm# 列出stack中的任务
docker stack ps nginx-stack
# 返回值
ID                  NAME                  IMAGE               NODE                DESIRED STATE       CURRENT STATE           ERROR               PORTS
er6ak0dt6zvi        nginx-stack_mysql.1   nginx:1.20.0        master              Running             Running 2 minutes ago                       
uriohm4ew1gx        nginx-stack_mysql.2   nginx:1.20.0        node1               Running             Running 2 minutes ago                       
fkkqo4dchban        nginx-stack_mysql.3   nginx:1.20.0        node1               Running             Running 2 minutes ago  # 列出stack中的服务
docker stack services nginx-stack
# 返回值
ID                  NAME                MODE                REPLICAS            IMAGE               PORTS
lasx9zcszyvy        nginx-stack_mysql   replicated          3/3                 nginx:1.20.0        *:80->80/tcp# 删除stack
docker stack rm nginx-stack
# 返回值
Removing service nginx-stack_mysql
Removing network nginx-stack_overlay
Removing network nginx-stack_nginx-net

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试 React 框架八股文十问十答第一期

面试 React 框架八股文十问十答第一期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)React 生命周期是怎样…

PHP代码审计之实战审代码篇2

4. 仔细观察如下代码&#xff0c;思考代码有什么缺陷&#xff0c;可能由此引发什么样的问题&#xff1f; <?php require_once("/home/rconfig/classes/usersession.class.php"); require_once("/home/rconfig/classes/ADLog.class.php"); require_onc…

neo4j-cypher语言使用

neo4j-cypher语言使用 neo4j的本质就是节点关系。节点是用小括号来表示&#xff0c;&#xff08;节点&#xff1a;节点标签 {属性名称&#xff1a;属性值}&#xff09;with 本质是with(变量) 传送到下一个语句&#xff0c;with 子处理(变量), with 查询return 变量。unwind 本质…

【二】使用create-vue创建vue3的helloworld项目(推荐)

create-vue 官网&#xff1a;快速上手 | Vue.js create-vue 是 Vue3 的专用脚手架&#xff0c;使用 vite 创建 Vue3 的项目&#xff0c;也可以选择安装需要的各种插件&#xff0c;使用更简单。 1、使用方式 npm create vuelatest这个命令会安装和执行 create-vue&#xff0…

k8s的yaml文件中的kind类型都有哪些?(清单版本)

在操作kubenates的过程中&#xff0c;我们接触到的yaml文件中的kind类型有很多。他们代表了kubenate的不同类型的对象&#xff0c;了解了kind的类型&#xff0c;也就相当于了解了k8s都有哪些类型的对象。 类型清单及概要说明 序号类型简述1Pod一个Kubernetes中最基本的资源类型…

排序算法记录

冒泡排序 public class BubbleSorting20230704 {public static void main(String[] args) {int[] numbers new int[]{2,3,1,5,4};for(int i0;i<numbers.length;i){for (int j0;j<numbers.length-1-i;j){if(numbers[j]>numbers[j1]){int temp numbers[j];numbers[j]…

【MATLAB源码-第105期】基于matlab的4PAM调制解调仿真,输出误码率和误符号曲线并且和理论值对比。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 4PAM&#xff08;4-Pulse Amplitude Modulation&#xff0c;4脉冲幅度调制&#xff09;是一种数字调制技术&#xff0c;它通过改变载波信号的幅度来表示数据。在4PAM中&#xff0c;载波的幅度可以采用四种不同的水平&#xf…

天翼云搭建AIGC开发环境综合教程

一、英伟达环境安装主要流程 1、下载安装对应系统版本nVidia驱动程序安装验证 2、CUDA开发套件安装验证 3、深度学习框架安装验证MiniConda3PyTorch 4、容器化CUDA环境安装验证 5、cuDNN深度学习优化驱动安装CNN训练验证 6、制作天翼云主机私有镜像 7、分享镜像给其他用…

File-一个IO流中至关重要的类

File类 概述&#xff1a;文件和目录路径名的抽象表示&#xff0c;File 对象就代表一个路径 对与File而言&#xff0c;其封装的并不是一个真正存在的文件&#xff0c;仅仅是一个路径名而已。它可以是存在的&#xff0c;也可以是不存在的。将来要通过具体的操作把这个路径的内容…

k8s的yaml文件中的kind类型都有哪些?(详述版Part1/2)

目录 综述 分块详述 1、Pod 2、Deployment 3、Service 4、DaemonSet 5、ReplicaSet 6、ServiceAccount 7、PodDisruptionBudget 8、PersistentVolumeClaim 9、PersistentVolume 10、Job 11、CronJob 12、StatefulSet 综述 通过yaml文件中的kind可以大致了解kube…

DevicData-D-XXXXXXXX勒索病毒的最新威胁:如何恢复您的数据?

尊敬的读者&#xff1a; 在网络犯罪的阴影下&#xff0c;勒索病毒成为数字时代的重要威胁之一。DevicData-D-XXXXXXXX 勒索病毒作为其中的一种变体&#xff0c;以其高度隐蔽性和破坏性而备受关注。本文将深入介绍 DevicData-D-XXXXXXXX 勒索病毒的特征、数据恢复方法以及预防策…

xxljob分布式调度平台

分布式调度平台 XXL-JOB 极简入门 https://segmentfault.com/a/1190000041674725xxl-job-core 模块&#xff1a;XXL-JOB 核心。后续我们在编写执行器时&#xff0c;会引入该模块。 xxl-job-admin 模块&#xff1a;调度中心。 xxl-job-executor-samples 模块&#xff1a;提供了…

Python print()函数高级用法和 len()函数详解:获取字符串长度或字节数

Python print()函数高级用法 我们使用 print() 函数时&#xff0c;都只输出了一个变量&#xff0c;但实际上 print() 函数完全可以同时输出多个变量&#xff0c;而且它具有更多丰富的功能。 print() 函数的详细语法格式如下&#xff1a; print (value,...,sep,end\n,filesys.s…

Python高级用法:上下文

上下文 上下文的实现一般可以通过装饰器或者上下文管理器实现&#xff0c;装饰器确保函数可以运行在正确的上下文中&#xff0c;或者在函数前后运行一些代码。 上下文装饰器 当一个数据项需要在多个线程之间共享时&#xff0c;就要用一个锁来保护它避免多次访问。这个锁可以…

如何使用 Jmeter 进行压力测试?

准备测试计划&#xff1a;在 JMeter 中创建一个新的测试计划&#xff08;Test Plan&#xff09;。添加线程组&#xff1a;在测试计划中添加一个线程组&#xff08;Thread Group&#xff09;&#xff0c;用于模拟并发用户。右键点击测试计划 -> 添加 -> Threads (Users) -…

Turn.js 实现翻书效果

接到了任务&#xff0c;要把孩子画的画放到网页上去&#xff0c;翻页效果还要逼真一点。搜索到了turn.js这个前端翻页组件&#xff0c;效果不错。先上图看效果。 网页实际效果&#xff1a;星月夜诗集 turn.js的官网地址&#xff1a;Turn.js: The page flip effect in HTML5 …

机械臂 关节电机选型计算

电机的关键参数 电机的三个关键参数&#xff1a;额定功率&#xff0c;额定扭矩&#xff0c;额定转速。这个大家都比较清楚&#xff0c;对应关系公式&#xff0c;可以直接搜索出来。这里还需要特别声明一点&#xff0c;就是电机的转速-扭矩曲线。这里的前提是对应不同的额定电压…

XDOJ173.购票系统

标题 购票系统 类别 综合 时间限制 1S 内存限制 256Kb 问题描述 请实现一个铁路购票系统的简单座位分配算法&#xff0c;来处理一节车厢的座位分配。 假设一节车厢有20排、每一排5个座位。为方便起见&#xff0c;我们用1到100来给所有的座位编号&a…

华为OD机试真题-机器人仓库搬砖-2023年OD统一考试(C卷)

题目描述: 机器人搬砖,一共有N堆砖存放在N个不同的仓库中,第i堆砖中有bricks[i]块砖头,要求在8小时内搬完。机器人每小时能搬砖的数量取决于有多少能量格,机器人一个小时中只能在一个仓库中搬砖,机器人的能量格每小时补充一次且能量格只在这一个小时有效,为使得机器人损…

高校电力能耗监测精细化管理系统,提升能源利用效率的利器

电力是高校不可离开的重要能源&#xff0c;为学校相关管理人员提供在线用能查询统计等服务。通过对学校照明用电、空调用电等数据的采集、监控、分析&#xff0c;为学校电能管理制定合理的能源政策提供参考。同时&#xff0c;也可以培养学生的节能意识&#xff0c;学校后勤电力…