从零开始搭建Aliyun ESC高可用集群 (HaVip+KeepAlived)

news2024/11/14 16:35:15

从零开始搭建Aliyun ESC高可用集群 (HaVip+KeepAlived)

架构

架构

eip_keepalived

本设计方案采用两台阿里云ECS服务器搭建Keepalived结合LVS的高可用集群。使用LVS的TUN模式进行负载均衡,同时利用阿里云的弹性IP(EIP)与高可用虚拟HaVIP实现跨服务器的高可用性。架构中,一台ECS服务器作为主LVS Director节点,另一台作为备份LVS Director节点,两者通过Keepalived实现故障自动切换。

环境配置

因为经费原因我这里只够买了2台ECS实例,用于测试HaVip在Keepalived主备切换与lvs TUN模式。

lvs_tun

资源 功能 备注
ECS实例 搭载集群 2台keepalived主备,2台部署服务(测试用没有购买),必须同一内网
172.19.68.106
172.19.68.110
弹性EIP 公网ip,流量入口 购买资源 47.102.148.135
高可用虚拟HaVIP 内网ip。lvs集群vip, keepalived节点ip漂移 免费申请 172.19.68.109

流程

  1. 在阿里云控制台创建两台ECS服务器,选择合适的配置以满足性能需求。
  2. 为两台ECS服务器配置相同的安全组规则,确保网络互通。
  3. 在两台ECS服务器上安装Linux操作系统并更新系统安全补丁。
  4. 配置Keepalived,设置VRRP(虚拟路由冗余协议),选择Tun模式,以实现高可用性。
  5. 配置阿里云EIP,通过高可用虚拟HaVIP将其绑定到主备LVS Director节点的VIP。
  6. 测试负载均衡和高可用性,确保系统在主节点故障时能够自动切换到备份节点。

各服务功能

  • LVS:作为负载均衡器,负责接收外部请求并通过TUN模式分发流量到后端服务。
  • Keepalived:监控LVS Director节点的状态,实现故障自动切换。
  • EIP(弹性IP):阿里云提供的静态IP地址,用于实现跨服务器的高可用性。

部署

部署

  1. 在两台ECS服务器上安装Linux操作系统并进行基础配置。
  2. 安装LVS软件,配置TUN模式,设置相同的VIP,并确保网络规则允许流量通过。
  3. 安装Keepalived,配置VRRP实例,指定主从角色和优先级。
  4. 配置阿里云EIP,将其与主LVS Director节点的VIP关联。
  5. 配置后端服务(如Web服务器),确保它们能够处理来自LVS的请求。
  6. 进行压力测试和故障模拟,验证负载均衡和高可用性配置。

文件配置

keepalived主节点

root@iZuf64d3yu2ti34bwqerlqZ:/home/w# cat /etc/keepalived/keepalived.conf 
# create new
global_defs {
   
    # set hostname
    router_id node01
}

vrrp_instance VRRP1 {
   
    # on primary node, specify [MASTER]
    # on backup node, specify [BACKUP]
    # if specified [BACKUP] + [nopreempt] on all nodes, automatic failback is disabled
    state MASTER
    # if you like disable automatic failback, set this value with [BACKUP]
    # nopreempt
    # network interface that virtual IP address is assigned
    interface eth0
    # set unique ID on each VRRP interface
    # on the a VRRP interface, set the same ID on all nodes
    virtual_router_id 101
    # set priority : [Master] > [BACKUP]
    priority 200
    # VRRP advertisement interval (sec)
    advert_int 1
    # virtual IP address
    virtual_ipaddress {
   
        172.19.68.109/32  dev eth0  # 必须配置 /32,否则会添加额外路由,导致2个esc节点ping不通内网
    }
}

virtual_server 172.19.68.109 80 {
   
    delay_loop 6
    lb_algo sh            # 负载均衡算法 源ip_hash
    lb_kind TUN            # tun 模式
    persistence_timeout 50
    protocol TCP

    real_server 172.19.68.110 80 {
   
        weight 1
        TCP_CHECK {
   
            nb_get_retry 3              # 重新连接次数
            delay_before_retry 3        # 重新连接间隔时间
            connect_port 80             # 向当前RS的哪个PORT发起健康状态检测请求
            connect_timeout 3           # 客户端请求的超时时长, 等于haproxy的timeout server
        }
    }
}

 

keepalived 备用节点

root@iZuf66hj0t5ardtam17vx6Z:/home/wcq# cat /etc/keepalived/keepalived.conf
global_defs {
   
    router_id node02
}

vrrp_instance V

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

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

相关文章

一文彻底理解大模型 Agent 智能体原理和案例

1 什么是大模型 Agent ? 大模型 Agent,作为一种人工智能体,是具备环境感知能力、自主理解、决策制定及执行行动能力的智能实体。简而言之,它是构建于大模型之上的计算机程序,能够模拟独立思考过程,灵活调…

防火墙基础概念与实验配置

目录 1.防火墙简介 1.1 什么是防火墙? 1.2 防火墙的功能 1.3 防火墙的类型 2.防火墙配置实验 2.1 基本要求 2.2 实验top 3.实验配置 3.1 基础配置 3.1.1 基础配置 3.1.2 安全域配置 3.1.3 配置安全策略 3.1.4 配置NAT 3.1.5 trust->dmz 3.1.6 端口…

代码随想录算法训练营day27 | 贪心算法 | 455.分发饼干、376.摆动序列、53.最大子序和

文章目录 理论基础解题步骤455.分发饼干思路小结 376.摆动序列简单思路贪心思路 53.最大子序和思路 今天是贪心算法的第一天 理论基础 贪心的本质是选择每一阶段的局部最优,从而达到全局最优 在理论上,能使用贪心解决的问题有两个特点:具有…

buuctf [HDCTF2019]Maze

前言:做题笔记。 常规 下载 解压 查壳 脱壳后用32IDA Pro打开。 得,迷宫类型的题目。(字符串有说。) 咳,此前思路对半分不行了。。。 合理猜测步数为:14。 那可以看看7 * 10的迷宫类型。(手动猜测的时候去取倍数如:0 2…

什么牌子的蓝牙耳机性价比高?2024年四款最值得买王牌耳机推荐!

在当前的手机备件市场中,蓝牙耳机已经逐渐成为智能手机备件的热门之选。然而,面对众多的耳机品牌和型号,消费者在选购时可能会感到困惑,稍微不留言就会买到不专业产品,那么什么牌子的蓝牙耳机性价比高?作为…

STM32的串口通信——HAL库

TTL串口 TTL串口仅仅需要两根数据线就可以进行串口通信: ①一条是从A设备发送的IO口连接到B设备的接收IO口 ②一条是从B设备发送的IO口连接到A设备的接收IO口 ③共地(GND)是两个设备通信的前提(保证他们的电平标准一致&#x…

使用css如何获取最后一行的元素?使用css解决双边框问题

一、项目场景: 在小程序上需要实现一个如下图的ui效果图 需要满足以下条件 一行放不下 自动换行最后一行或者只有一行时,文字底部不能有线 二、初版实现 按照上面的要求,最开是的实现代码如下 我是给每一个元素都添加了一个下边框&#x…

Python酷库之旅-第三方库Pandas(095)

目录 一、用法精讲 406、pandas.DataFrame.index属性 406-1、语法 406-2、参数 406-3、功能 406-4、返回值 406-5、说明 406-6、用法 406-6-1、数据准备 406-6-2、代码示例 406-6-3、结果输出 407、pandas.DataFrame.columns属性 407-1、语法 407-2、参数 407-3…

楼顶气膜羽毛球馆:城市健身新空间—轻空间

随着城市化进程的加快,城市土地资源愈发紧张,如何高效利用有限的空间成为一大挑战。楼顶气膜羽毛球馆作为一种创新的体育场馆建设方式,凭借其独特的优势,逐渐成为城市健身的新宠。它不仅有效利用了楼顶闲置空间,还为市…

新160个crackme - 039-eKH.1

运行分析 需要破解Name和Serial,写出注册机 PE分析 - Delphi程序,32位,无壳 静态分析&动态调试 ida搜索关键字符串,跳转到关键代码 静态分析,修改变量如上,关键在于sub_427A20函数返回值需要大于等于1…

“双指针”算法下篇

WeChat_20240806081335 对双指针这一思想在OJ 里面的相关应用,感兴趣的友友们,可以看下此篇博客 https://blog.csdn.net/X_do_myself/article/details/141291451?spm1001.2014.3001.5502 目录 一盛最多水的容器 1题目链接:盛最多水的容器…

EmguCV学习笔记 VB.Net 6.5 凸包和凸缺陷

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

sgsegse

c语言中的小小白-CSDN博客c语言中的小小白关注算法,c,c语言,贪心算法,链表,mysql,动态规划,后端,线性回归,数据结构,排序算法领域.https://blog.csdn.net/bhbcdxb123?spm1001.2014.3001.5343 给大家分享一句我很喜欢我话: 知不足而奋进,望远山而前行&am…

货车制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型

货车制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型。随着5G技术的飞速发展与工业物联网的深度融合,货车制造5G智能工厂工业物联数字孪生平台应运而生,它不仅重新定义了生产模式,更以强大的技术驱动力,推动…

开放世界目标检测:检测区分出未知物体

开放世界目标检测:检测区分出未知物体 01 Abstract 开放世界目标检测旨在识别未见过类别的目标,并在提供注释后逐步识别这些目标。与传统的只限于预定义类别的范式不同,这种设置承诺通过使用与类别无关的信息来持续且通用地估计目标性。然而…

Java码农35岁之后只能送外卖?

声明:此篇为 ai123.cn 原创文章,转载请标明出处链接:https://ai123.cn/2208.html Hey,Java界的小伙伴们,有没有感受到互联网行业这一场没有硝烟的“代际战争”?🤖💥 关于“35岁后只…

配电房挂轨机器人巡检系统的主要优点包括

背景 配电房是724h工作的封闭环境,人工巡检无法在时间上和空间上对配电室进行全量监控。有限的巡检时间,必然带来设备运转的黑盒时间,设备故障和隐患无法及时监控与消缺。因而不可避免存在漏检、误检的情况,不仅容易隐藏电力系统…

AI Agent产品经理血泪史:一年来我摸过的那些石头【Tools篇】

前几天刚好看到一篇关于GPT-6的报道,才想起来还有这麽回事情,于是赶紧把草稿捞出来改改交个任务。 至于为什麽贴这张图,以及为什麽血泪史从Tools开篇。 那是因为你看,即使到了GPT-6的时代,Tools仍然是AI Agent落地的…

ElementPlus下拉框输入框对齐问题

1.问题 2.解决方法 2.1label-width 说明:el-form中label-width设置为auto 2.2 label-wdith固定值 说明:如果在el-form-item里面设置了label-width"100px";采用宫格布局。 .demo-one{display: grid;grid-template-columns: repe…

C++:vector篇

前言: 本篇仅介绍vector中常用的函数接口,如果需要详细的请到官网查看。 vector是一种动态数组,能够自动调整大小。与数组类似,vector使用连续内存来存储元素,允许高效访问,但可以动态增加容量。为了应对容…