docker swarm集群

集群构建

不包含在任何 Swarm 中的 Docker 节点,称为运行于单引擎(Single-Engine)模式。一旦被加入 Swarm 集群,则切换为 Swarm 模式。第一步我们要做的就是初始化 Swarm。

初始化swarm集群

将本机作为manager节点

docker swarm init --advertise-addr 192.168.xxx.xxx

docker warm init会通知 Docker 来初始化一个新的 Swarm,并将自身设置为第一个管理节点,同时也会使该节点开Swarm 模式。

--advertise-addr 参数配置当前管理节点的发布地址,其他节点必须能连接这个地址。在机器只有一个ip的情况下可以省略,如果由多个ip则必须手动指定。

可以通过以下命令查看集群和节点的状态

docker info

在这里插入图片描述
在这里插入图片描述

节点加入集群

其它节点可以以工作节点管理节点的方式加入集群,执行的命令,可以在管理节点运行以下命令查看:

docker swarm join-token worker # 查看工作节点加入集群的指令和令牌
docker swarm join-token manager # 查看管理节点加入集群的指令和令牌

swarm集群管理基本命令

docker swarm

在这里插入图片描述

  • docker swarm init
    初始化集群
  • docker swarm join-token worker|manager
    管理令牌,可查看刷新令牌,只能在管理节点执行
  • docker swarm join HOST:PORT
    将一个节点机器人加入集群
  • docker swarm update
    更新集群状态,只能在管理节点执行
    • -autolock:修改管理节点的自动锁定功能配置,可用值有: true、false
    • -cert-expiry:验证节点之间的通讯令牌的间隔,默认时2160小时,可用单位: ns|us|ms|s|m|h
    • -dispatcher-heartbeat:心跳包间隔时长,默认5秒,可用单位:ns|us|ms|s|m|h
    • -task-history-limit:任务历史记录保留限制
  • docker swarm leave
    脱离集群,docker swarm leave -f 强制离开
  • docker swarm unlock-key
    管理解锁码,可查看,刷新解锁码
    • -q:只输出解锁码
    • -rotate:刷新解锁码
  • docker swarm unlock
    解锁一个管理节点

docker node

docker node常用命令如下
在这里插入图片描述

  • docker node ls
    列出集群中的节点,只能在管理节点操作
  • docker node inspect <节点名>
    查看节点的详细信息,只能在管理节点操作
  • docker node demote 节点名
    对节点进行降级
  • docker node promote 节点名
    对节点进行升级
  • docker node ps [OPTIONS] [NODE…]
    查看节点上正在执行的任务,可以通过节点名称查看某一节点的任务,默认是当前节点,只能在管理节点操作
  • docker node rm [OPTIONS] NODE [NODE…]
    通过节点名称移除节点,只能在管理节点操作,可以一次移除多个节点,一个节点使用docker swarm leave命令脱离集群之后还可以用docker node ls命令看到,使用docker node rm移除的节点将彻底不再集群中

部署服务

基本部署操作

docker swarm 搭建好集群,我们目的在集群中部署应用。swarm集群部署应用最基本的命令是docker service,它的使用方式类似 docker container,也适用于部署单个应用,都不能进行编排(后续引入docker stack类似集群下的docker compose),只不过一个用于单机,一个用于集群

下面以在swarm集群中部署nginx为例:

默认的情况下,管理节点也是一个工作节点,服务也会部署在了管理节点上,如果我们不希望服务部署在管理节点上的话,可以将管理节点设置为darin状态。
在这里插入图片描述
执行以下命令将管理节点设置威darin

docker node update --availability drain server

我这里因为只有一台机子,因此我就不设置为drain了
之后执行以下命令部署nginx应用:

docker service create --name nginx-test --replicas 2  -p 8080:80 nginx:1.21.6

在这里插入图片描述
swarm集群中进行应用部署使用docker swarm create命令,该命令与熟悉的 docker container run 命令的许多参数是相同的,上面的命令中声明基于nginx镜像部署应用,服务名称为nginx-test,将容器内部的80端口映射到集群网络的8080端口,–replicas 2在集群节点之中保持2个服务副本(即两个容器)。

运行以下命令查看服务以及查看服务详情

docker service ls
docker service ps nginx-test

在这里插入图片描述
我们创建的所有服务都会被 Swarm 持续监控,Swarm 会在后台进行轮训检查(Reconciliation Loop),来持续比较服务的实际状态和期望状态是否一致。如果一致,则无须任何额外操作;如果不一致,Swarm 会使其一致。换句话说,Swarm 会一直确保实际状态能够满足期望状态的要求。

例如这里的两个nginx的容器其中一个宕机了,swarm会重新启动一个副本,让正常运行的nginx容器始终保持在两个,这使得服务在面对节点宕机等问题时具有自愈能力。
在这里插入图片描述
这里如果有多台机器加入了集群,每个机器的ip:8080都能访问到nginx服务
因为默认情况下swarm集群采用ingress模式发布端口,通过路由网格模式让我们发布的端口在集群每一个节点上口都可以访问,再通过内部的负载均衡自动转发到实际的运行的容器之中。具体可参考这篇文章

我们的应用在实际的应用中可能会根据访问量进行扩容、缩容,即根据实际情况调整容器启动的数量,通过docker service scale命令可以很方便得进行操作。例如下面将nginx容器扩展到4个

docker service scale nginx-test=4

在这里插入图片描述
有些时候我们会对服务的配置进行修改,例如增加一个映射端口:

docker service update --publish-add 8081:80 nginx-test

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

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

相关文章

举例说明用 easylanguage 语言,编写抄底公式

EasyLanguage 语言在金融领域被广泛使用&#xff0c;尤其是用于编写交易策略和算法。以下是一个简单的抄底公式示例&#xff1a; swift 复制 // 定义变量和参数 Dim StopLossPrice As Double Dim TakeProfitPrice As Double Dim InitialPosition As Double Dim SafetyZon…

Promethus(普罗米修斯)安装与配置(亲测可用)

1. 普罗米修斯概述 Prometheus(是由go语言(golang)开发)是一套开源的监控&报警&时间序列数 据库的组合。适合监控docker容器。 Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包 。自2012年成立以来&#xff0c;许多公司和组织都采用了Prometheus&#…

【Linux进行时】进程状态

进程状态&#xff1a; ❓假设我们在上课&#xff0c;在B站上上课&#xff0c;请问我们的B站是不是一直运行呢&#xff1f;&#x1f4a1;不是的&#xff01; ❓假设我们同时打开了B站和PDF阅读器时&#xff0c;是怎么运行的呢&#xff1f; &#x1f4a1;每一个进程在CPU跑一会&a…

工业RFID进口品牌和国内品牌差距有多大?

随着国内的RFID技术也逐渐发展成熟&#xff0c;国产工业品牌也不断优化&#xff0c;推出了不少高品质、高性能的工业读写器。对于企业来说&#xff0c;在选择读写器的时候也有了更多的选择&#xff0c;那么&#xff0c;现如今工业RFID进口品牌和国内品牌差距有多大&#xff0c;…

深度解析NLP文本摘要技术:定义、应用与PyTorch实战

目录 1. 概述1.1 什么是文本摘要&#xff1f;1.2 为什么需要文本摘要&#xff1f; 2. 发展历程2.1 早期技术2.2 统计方法的崛起2.3 深度学习的应用2.4 文本摘要的演变趋势 3. 主要任务3.1 单文档摘要3.2 多文档摘要3.3 信息性摘要 vs. 背景摘要3.4 实时摘要 4. 主要类型4.1 抽取…

迅为i.MX8mm小尺寸商业级/工业级核心板

尺寸&#xff1a; 50mm*50mm CPU&#xff1a; NXP i.MX8M Mini 主频&#xff1a; 1.8GHz 架构&#xff1a; 四核Cortex-A53&#xff0c;单核Cortex-M4 PMIC&#xff1a; PCA9450A电源管理PCA9450A电源管理NXP全新研制配&#xff0c;iMX8M的电源管理芯片有六个降压稳压器、五…

C#-WinForm-发送邮件

登录QQ邮箱——设置——开启“POP3/SMTP服务” 登陆QQ邮箱→打开设置→开启“POP3/SMTP服务”&#xff0c;获取“授权码” 简单总结一下&#xff1a; 1、使用SmtpClient发送电子邮件是很简单的&#xff0c;只要正确创建了MailMessage对象和SmtpClient就可以很容易的发送出去电…

RBTree(红黑树)模拟实现(插入)

目录 红黑树的性质 红黑树的模拟插入 叔叔存在且为红色 叔叔不存在 旋转情况​​​​​​​ 叔叔存在且为黑色 总结 插入实现 节点 插入逻辑 左单旋 右单旋 红黑树是一颗平衡搜索二叉树&#xff0c;但是红黑树并不像 AVL 树一样是高度平衡二叉树&#xff0c;任意一…

无涯教程-JavaScript - LCM函数

描述 LCM函数返回整数的最小公倍数。最小公倍数是最小的正整数,它是所有整数参数number1,number2等的倍数。使用LCM添加具有不同分母的分数。 语法 LCM (number1, [number2] ...)争论 Argument描述Required/OptionalNumber1, number2... 您想要最小公倍数的1到255个值。 如…

kubesphere中间件部署

微服务部署前中间件部署 一、MySQL部署 1.1 使用Docker实现MySQL主从复制 docker run -p 3307:3306 --name mysql-master \ -v /mydata/mysql/master/log:/var/log/mysql \ -v /mydata/mysql/master/data:/var/lib/mysql \ -v /mydata/mysql/master/conf:/etc/mysql \ -e My…

Leetcode算法入门与数组丨3. 数组基础

文章目录 前言1 数组简介2 数组的基本操作2.1 访问元素2.2 查找元素2.3 插入元素2.4 改变元素2.5 删除元素 3 总结task03task04 前言 Datawhale组队学习丨9月Leetcode算法入门与数组丨打卡笔记 这篇博客是一个 入门型 的文章&#xff0c;主要是自己学习的一个记录。 内容会参…

带你熟练使用list

&#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;强烈推荐优质专栏: &#x1f354;&#x1f35f;&#x1f32f;C的世界(持续更新中) &#x1f43b;推荐专栏1: &#x1f354;&#x1f35f;&#x1f32f;C语言初阶 &#x1f43b;推荐专栏2: &#x1f354;…

Nginx map 实现时间格式转换

哈喽大家好&#xff0c;我是咸鱼 最近我们需要把 Nginx 的日志接入到自研的日志采集平台上&#xff0c;但是这个平台只支持 JSON 格式&#xff0c;所以需要把 Nginx 日志格式改成 JSON 格式 例如下面这样的效果 刚开始在主配置文件 nginx.conf 中定义了一个名叫 json 的日志…

2023 蓝帽杯初赛web部分取证复现

前言&#xff1a;初赛进线下了&#xff0c;计划着在决赛前突击学习一下取证&#xff0c;但时间还是太紧 只看了很多内存取证和手机取证 计算机取证和服务器取证没掌握 ---( 不过复赛没考&#xff0c;也算狗运了) 目录 <1> web-LovePHP(file()函数侧信道攻击) <2&g…

在TensorFlow中使用GAN生成图像

一、说明 本文详细论述&#xff0c;如何在tensorflow下&#xff0c;在mnist数据集合上进行GAN实现。包括&#xff1a;框架建立、数据集读出、生成器、鉴别器、代价函数、优化等具体步骤的代码实现。 二、GAN框架介绍 生成器&#xff1a;此组件负责生成新图像。鉴别器&#xf…

《Docker与Kubernetes容器运维实战》简介

#好书推荐##好书奇遇季#《Docker与Kubernetes容器运维实战》已经出版。本书帮助读者系统掌握Docker与K8s运维技能。 本书内容 本书分两部分系统介绍Docker与Kubernetes的运维技术。 &#xff08;1&#xff09;Docker部分包括&#xff1a;全面认识Docker、初步体验Docker、Dock…

Vue记录(下篇)

Vuex getters配置项 *Count.vue <template><div><h1>当前求和为&#xff1a;{{$store.state.sum}}</h1><h3>当前求和的10倍为&#xff1a;{{$store.getters.bigSum}}</h3><select v-model.number"n"><option value&q…

HarmonyOS开发环境搭建

一 鸿蒙简介&#xff1a; 1.1 HarmonyOS是华为自研的一款分布式操作系统&#xff0c;兼容Android&#xff0c;但又区别Android&#xff0c;不仅仅定位于手机系统。更侧重于万物物联和智能终端&#xff0c;目前已更新到4.0版本。 1.2 HarmonyOS软件编程语言是ArkTS&#xff0c…

有哪些编程语言能在AI的应用上大显身手?

人工智能&#xff08;AI&#xff09;是当今最热门的技术领域之一&#xff0c;它涉及到许多不同的子领域&#xff0c;如机器学习、深度学习、自然语言处理、计算机视觉、语音识别等。要开发AI应用&#xff0c;就需要使用一种或多种编程语言&#xff0c;但是&#xff0c;并不是所…

函数式编程汇总

目录 一 . Lambda 表达式 实例 省略规则 二. Stream 流 案例数据准备 入门实例 调试技巧 常用操作 创建流 1. 单例集合 2. 数组 3. 双列集合 中间操作 1. filter 2. map 3. distinct 4. sorted 5. limit 7. flatMap 终结操作 1. forEach 2. count 3. max…