Docker系列器十一:容器编排docker swarm和水平扩展

2023-10-26

容器编排 Swarm mode

在单机docker中,思考
1,怎么去管理这么多容器?
2,怎么能方便的横向扩展?
3,如果容器down了,怎么能自动恢复?
4,如何去更新容器而不影响这些业务?
5,如何去监控追踪这些容器?
6,怎么去调度容器的创建?
7,保护隐私数据?

Docker Swarm Mode Architecture
swarm是一种集群的架构
swarm里面有几点,节点node有两种角色
第一种:Manager  (raft consensus group)
 (大脑,最少有两个,同步数据另外一个Manager,通过分布式的数据库Raft)
第二种:worker  (Gossip network)
(数据的同步是Gossip)
 

实验流程:
准备三台主机:
Manager     192.168.205.10
node1        192.168.205.20
node2        192.168.205.30

查看帮助:
docker swarm --help

docker swarm init --advertise-addr=192.168.205.10
在Manager节点上运行就是Manager

[root@docker-Manager]# docker swarm init --advertise-addr=192.168.205.10
Swarm initialized: current node (vc0u406d1te6egsltsvalwlan) is now a manager.

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

    docker swarm join --token SWMTKN-1-4mb7762wejys88h2jewdb11avy2jsq9rgupuivkkjgyp1hsi78-6liafahn1txejnntva103t7oc 192.168.205.10:2377

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

Mangaer节点运行后会生成:
docker swarm join --token SWMTKN-1-4mb7762wejys88h2jewdb11avy2jsq9rgupuivkkjgyp1hsi78-6liafahn1txejnntva103t7oc 192.168.205.10:2377
将此节点复制后再node2和node3上运行

回到Manager节点上,运行

docker node ls 
查看是否添加成功
[root@docker-Manager]# docker node ls
ID                            HOSTNAME            STATUS              AVAILABILITY        MANAGER STATUS      ENGINE VERSION
vc0u406d1te6egsltsvalwlan *   docker-host         Ready               Active              Leader              18.06.0-ce
aswwj27ubfepmcukhlb1zwixd     docker-node2        Ready               Active                                  18.06.0-ce
u6s0jdbkai3ag4b9j1q4n6ddc     docker-node3        Ready               Active                                  18.06.0-ce
添加成功
docker service的创建

docker service create --name demo busybox sh -c "while true;do sleep 3600;done"

查看是否运行成功
docker service ls

REPLICAS 1/1 是水平扩展的意思

将刚刚demo扩展为5个
docker service scale demo=5

在Manager 查看是否五个正常运行:
docker service ls
REPLICAS 5/5
docker service ps demo

重点:
docker swarm 可以做横向扩展
当一台机器上的服务不可用或者shutdown时候
主节点Manager会继续发出创建命令,使他维持在扩展的总数。
这样做的意义就是保证了服务的高可用性,宕机后自动启动,维持服务的可靠性。

Manage删除刚刚创建的DEMO
docker service rm demo

主节点上删除后,在node1和node2上docker ps发现也是同步消失了。

dcoker service --help 查看帮助

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Docker系列器十一:容器编排docker swarm和水平扩展 的相关文章

随机推荐

  • 深度学习与智能故障诊断学习笔记(一)——故障诊断体系介绍

    1 引言 智能故障诊断 IFD 是指将机器学习理论 如人工神经网络 ANN 支持向量机 SVM 和深度神经网络 DNN 应用于机器故障诊断 这种方法利用机器学习理论 从采集的数据中自适应地学习机器的诊断知识 而不是利用工程师的经验和知识 具
  • 4.9枚举 & 注解 & 反射

    1 枚举 1 1 简介 JDK1 5引入了新的类型 枚举 在JDK1 5 之前 我们定义常量都是 public static fianl 很难管理 枚举 可以把相关的常量分组到一个枚举类型里 而且枚举提供了比常量更多的方法 用于定义有限数量
  • Diff算法—前端框架的基石

    Diff算法 前端框架的基石 一 Diff算法 一 Diff算法 什么是Diff算法 比较差异算法 找出必须要更新的DOM的办法 比较什么差异 DOM树差异 如何比较 用js模拟真实dom virtual dom 虚拟DOM 比较DOM树变
  • java.lang.OutOfMemoryError: Java heap space

    项目部署在服务器上 上传图片的时候出现的问题 记录下问题 java long OutOfMemoryError java heap space 系统内存不足 修改启动参数 echo start http service nohup java
  • 【Android -- 写作工具】Markdown 生成目录

    1 前言 目录是文章内容的整体索引 是文章结构的最直观表现形式 Markdown 为生成目录提供了快捷方式 大大降低了文章目录的编排复杂度 2 语法详解 2 1 目录的自动生成 在 Markdown 中 自动生成目录非常简单 只需要在恰当的
  • flutter控件之弹出菜单PopupmenuButton控件

    PopupMenuButton控件即弹出菜单控件 点击控件会出现菜单 import package flutter material dart class MenusDemo extends StatefulWidget override
  • git如何上传本地项目

    初始化设置 在安装Git之后 需要对用户名和邮箱进行设置 这个操作只需要进行一次 git config global user name lt 用户名 gt git config global user email lt 电子邮件 gt 新
  • Bootstrap框架(组件)

    目录 前言 一 组件 1 1 字体图标 1 2 下拉菜单组件 1 2 1 基本下拉菜单 1 2 2 按钮式下拉菜单 1 3 导航组件 1 3 1 选项卡导航 1 3 2 胶囊式导航 1 3 3 自适应导航 1 3 4 下拉菜单导航 1 3
  • 提高PHP性能的几个技巧

    分享关于在PHP编程言语中 如何进步效率问题 常常同样的功用 不一样的代码 出来的效率常常大不一样 博主总结以下几点分享给大家 1 用单引号替代双引号来包含字符串 这样做会更快一些 由于PHP会在双引号包围的字符串中搜索变量 单引号则不会
  • Linux文件编程实现复制(cp)命令。

    复制基本思路 1 打开第一个文件 2 读取第一个文件的内容 3 打开 创建第二个文件 4 将文件写入进去 源代码 include
  • openGauss学习笔记-28 openGauss 高级数据管理-NULL值

    文章目录 openGauss学习笔记 28 openGauss 高级数据管理 NULL值 28 1 IS NOT NULL 28 2 IS NULL openGauss学习笔记 28 openGauss 高级数据管理 NULL值 NULL值
  • Qt系列文章之 QAbstractItemModel(下)

    本文紧接着上一文介绍如何对用户模型剩下的类进行实现 并将其集成到视图并显示出来 QAbstractItemModel insertRows int row int count const QModelIndex parent 该函数实现一次
  • sklearn 中F1-score的计算

    一 相关概念 对于数据测试结果有下面4种情况 真阳性 TP 预测为正 实际也为正 假阳性 FP 预测为正 实际为负 假阴性 FN 预测为负 实际为正 真阴性 TN 预测为负 实际也为负 准确率 P TP TP FP 召回率 R TP TP
  • html存储数据的方法,数据存储方式有哪些

    数据存储方式 1 顺序存储方法 结点间的逻辑关系由存储单元的邻接关系来体现 2 链接存储方法 结点间的逻辑关系由附加的指针字段表示 3 索引存储方法 4 散列存储方法 根据结点的关键字直接计算出该结点的存储地址 本教程操作环境 window
  • DOS命令之dir:显示当前目录下文件和子目录列表

    DOS命令 dir 是用于显示当前目录下文件和子目录列表的命令 方便用户查看和操作文件系统 dir 命令的语法如下 dir 目录路径 s w p 其中 可选的参数包括 s 列出指定目录下的所有子目录和文件 w 使用宽格式列表显示目录中的文件
  • 具体的运输层协议---UDP和TCP

    具体的运输层协议 UDP和TCP 概述 TCP协议 TCP协议概述 TCP协议的可靠数据传输 可靠性 三次握手与四次挥手 TCP连接的创建与断开 TCP的流量控制和拥塞控制 TCP的流量控制 TCP的拥塞控制 UDP协议 概述 前面我们总体
  • MFC中子控件响应键盘消息

    在MFC的窗口和控件编程时 经常需要使某个控件主动响应用户的键盘消息 哪怕该控件并没有输入功能 为方便说明 假设你的主窗口为A 需要相应键盘消息的子控件为B为一个图片控件 Picture control 此时 你需要做如下工作 1 派生一个
  • React循环遍历渲染数组和对象元素

    遍历渲染数组 1 单纯数组 const pureArr a b c d 假如我们想将上面的数组利用react渲染成一个列表 代码如下 pureArr map item gt li item li 以上代码在codesandbox中运行结果如
  • Webpack5中CSS处理(单独文件、兼容及压缩)

    文章目录 一 CSS处理 1 1 单独文件 1 1 1 安装依赖 1 1 2 配置 1 1 3 测试 1 2 兼容处理 1 2 1 安装依赖 1 2 2 配置 1 2 3 控制兼容性 1 2 4 测试 1 3 压缩 1 3 1 安装依赖 1
  • Docker系列器十一:容器编排docker swarm和水平扩展

    容器编排 Swarm mode 在单机docker中 思考 1 怎么去管理这么多容器 2 怎么能方便的横向扩展 3 如果容器down了 怎么能自动恢复 4 如何去更新容器而不影响这些业务 5 如何去监控追踪这些容器 6 怎么去调度容器的创建