可自动扩展的高可用Swarm集群EdgeScaler的搭建

2023-11-15

项目简介

随着虚拟化和容器技术的日趋成熟,Docker越来越受到人们的关注,目前Docker已经发展到1.10版本,并且已经可以在生产环境大规模部署。本文介绍EdgeScaler集群系统,使用Swarm+Docker+Registrator+Etcd+Confd+HAProxy搭建了一个可自动可扩展的docker集群。

应用场景

EdgeScaler能满足一下两种业务场景:
1. 提供APP服务器集群服务,并提供负载均衡,端口暴露,资源隔离等基本功能。
2. 为开发人员提供内部PaaS级的测试环境。

集群架构

在EdgeScaler中,我们使用swarm对集群进行管理,其架构如下:

EdgeScaler架构图

其中:

  • swarm管理集群可以使用主从节点提高管理节点高可用性,通过标准RESTFul API对管理需求提供服务。
  • 由于Docker属于系统级别的虚拟化隔离,其功能特性依然依赖宿主机,目前在隔离性方面还有待完善,所以在实际生成环境中会将docker host运行在虚拟机中,虚拟机网络可以根据不同情况配置成互相隔离的专用网络,形成局部的封闭环境,保护物理主机的正常运行。
  • 在本图中左侧虚拟机为单独的局域网络

组件描述

Swarm:版本号为1.1.2。Swarm是一个docker官方提供的服务,他可以将多个docker实例抽象成一个ip加端口的地址,供其他docker管理工具调用。
Docker:版本号为1.10.2,自1.9+版本以后docker支持overlay网络,此网络为swarm跨主机网络方案。
Registrator:为最新registrator镜像,Registrator为docker端口服务映射服务,它监听docker socket端口信息,并对信息进行整理,存入如Etcd这样的服务发现的K-V存储系统中。
Etcd:在分布式系统中,如何管理节点间的状态同样一直是一个难题,Etcd是专门为集群环境的服务发现和注册而设计,它提供了数据TTL失效、数据改变监视、多值、目录监听、分布式锁原子操作等功能,可以方便的跟踪并管理集群节点的状态。
Confd: Confd是一个轻量级的配置管理工具,通过定期从etcd中读出关心数据,并更新本地配置文件,同时reload读取配置文件的应用。
HAProxy: HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理。

集群搭建

环境准备

IP定义:
etcd_host:为发现服务集群IP地址
swarm_manager_host:为swarm管理节点IP地址
swarm_local_node_host:为swarm从节点本地IP地址

  1. Docker 安装并配置
    获取最新的docker程序

    curl -fsSL https://get.docker.com/ | sh

    在所有swarm节点中配置docker daemon监听配置,使用nohup命令使daemon后台运行。

    nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock –cluster-store etcd://etcd_host:2379 –cluster-advertise swarm_local_node_host:2375 &

    -H 代表daemon监听所有2375端口的网络请求,并监听本地客户端socket请求信息
    –cluster-store 指定发现服务系统
    –cluster-advertise 广播本地节点服务地址

    启动后,可运行如下命令测试

    docker version

  2. 获取swarm
    最简单的获取安装swarm方法是直接拉去swarm镜像:

    docker pull swarm

  3. Etcd集群搭建
    在所有节点上搭建etcd服务发现系统,可从https://github.com/coreos/etcd/releases下载最新版本的Etcd,并用如下shell脚本运行Etcd服务,推荐节点数目>3并且为奇数。

    NAME=infra0
    MASTER_NAME=infra0
    SLAVE_NAME_1=infra1
    SLAVE_NAME_2=infra2
    LOCAL_IP=10.192.33.92
    MASTER=10.192.33.34
    SLAVE_IP_1=10.192.33.92
    SLAVE_IP_2=10.192.33.94
    etcd -name 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

可自动扩展的高可用Swarm集群EdgeScaler的搭建 的相关文章

随机推荐

  • 图像集存储成MNIST数据集格式实现

    有时会用到将一组图像存放成MNIST中那样的数据格式 以便于用于网络的训练和测试 如MNSIT中的测试集标签t10k labels idx1 ubyte和测试集图像t10k images idx3 ubyte 各包含了10000个样本 这里
  • LVGL 8.1.0 父子控件之间坐标偏移的处理

    8 1 0版本去掉了fit配置 而系统样式会自带偏移处理 为了解决这一问题 可以使用样式padding来处理 lv style set pad
  • JS数组与对象数据格式互相转换

    JS数组与对象数据格式互相转换 一 二维数组转数组对象 开发过程中后端传过来的数据和自己需要的数据格式不统一 需要数据格式的转化 let twoArr 20 30 40 30 40 50 40 50 60 let keys name1 na
  • 【HTML+CSS兼容性】 li中插入img元素之间存在空隙BUG问题+解决方案 前端零基础必须知道的事情!

    个人主页 极客小俊 作者简介 web开发者 设计师 技术分享博主 希望大家多多支持一下 我们一起进步 如果文章对你有帮助的话 欢迎评论 点赞 收藏 加关注 场景问题描述 环境测试 Chrome Edge Opera FireFox 举个栗子
  • uni-app里的拓展组件uni ui与UI框架uView UI的Popup 弹出层的区别!

    uni app里的拓展组件uni ui与UI框架uView UI的Popup 弹出层的区别 文章目录 1 官网Popup 弹出层链接 2 属性不同 3 属性对照 4 弹出的方式 5 uView特有属性 1 官网Popup 弹出层链接 uni
  • 虚幻4渲染编程(特效篇)【第三卷:NiagaraParticleEffects-中】

    MY BLOG DIRECTORY YivanLee 专题概述及目录 zhuanlan zhihu com INTRODUCTION 上一卷探索了Niagara的核心 这一卷开始研究Niagra的一些细节 文中会有很多细枝末节的东西 大佬可
  • window快捷键

    window快捷键 快捷方式 二 window快捷键 制作博客功能快捷键 window快捷键放大程序 Windows PRINT SCREEN 将屏幕复制到剪贴板 包括鼠标光标 Windows SCROLL LOCK 将屏幕复制到剪贴板 不
  • “Shopee杯” 武汉大学(网络预选赛)D - DIY Masks at Home

    Shopee杯 武汉大学 网络预选赛 D DIY Masks at Home 题目链接 Click 时间限制 C C 5秒 其他语言10秒 空间限制 C C 262144K 其他语言524288K 64bit IO Format lld 题
  • 浏览器保存文件api_使用HTML5文件API在浏览器中本地处理文件

    浏览器保存文件api I recently came across a problem in a project that I was working on I needed the user to be able to load an i
  • python快捷运算:矩阵和数组块的叠加运算

    如果需要对矩阵或者数组的部分元素进行更新 比如与另外一个数组进行算数运算 但是大小不同 numpy提供了解决方案 usr bin env python import numpy as np from math import n map 0
  • tensorflow中如何计算参数量

    所谓的参数量 其实就是可训练的所有张量 每一个张量有多少位数字 然后统计一下数字的个数 比如我们的网络中一共有两个可训练的张量 一个的形状是 5 3 2 另外一个是 5 2 网络的参数量就是 从checkpoint中计算参数量的代码如下 c
  • ERC20 自创代币

    ERC20自创代币实现 区块链实验课作业 一 ERC20标准接口 contract ERC20 function name constant returns string name function symbol constant retu
  • Linux连接与基础命令

    一 进入虚拟机配置网卡 点击查看NAT设置 记住自己的网关与IP地址 右击桌面 点击打开终端进行配置 进入终端输入以下命令 配置IP地址 root localhost cd etc sysconfig network scripts roo
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 云原生之使用Docker部署Affine知识库工具

    云原生之使用Docker部署Affine知识库工具 一 Affine介绍 1 Affine简介 2 Affine特点 二 检查本地docker环境 1 检查docker状态 2 检查系统版本 三 下载Affine镜像 四 使用docker
  • cr3格式是什么意思_佳能rp的cr3如何打开?修图为什么要用raw格式?转码又是什么?...

    佳能rp的cr3如何打开 修图为什么要用raw格式 转码又是什么 这是我个人整理的广大网友的一些答案 不想浪费大家太多时间就在这里分享给大家希望大家可以快速理解 搜集的广大网友的回答 方便大家理解 希望他们看见可以理解 希望大家继续补充关于
  • Servlet中的会话

    会话的创建 Servlet中的HttpRequestServlet对象为我们提供了一下两种创建并获取HttpSession对象的方法 lt 1 gt HttpSession session request getSession boolea
  • C# 理解Thread.Sleep()方法 (转载学习)

    我们可能经常会用到 Thread Sleep 函数来使线程挂起一段时间 那么你有没有正确的理解这个函数的用法呢 思考下面这两个问题 1 假设现在是 2008 4 7 12 00 00 000 如果我调用一下 Thread Sleep 100
  • E-R模型

    知识点 E R模型 Entity relationship model 表示 实体 用矩形框表示 属性 实体的属性用椭圆框表示 联系 实体间的联系用菱形框表示 并在连线上标明联系的类型 即1 1 1 n或m n 两个实体之间的联系 一对一
  • 可自动扩展的高可用Swarm集群EdgeScaler的搭建

    项目简介 应用场景 集群架构 组件描述 集群搭建 环境准备 Swarm工作节点搭建 Swarm管理节点搭建 ConfdHAProxy节点搭建 小结 项目简介 随着虚拟化和容器技术的日趋成熟 Docker越来越受到人们的关注 目前Docker