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

从零开始搭建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 hostnamerouter_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 disabledstate MASTER# if you like disable automatic failback, set this value with [BACKUP]# nopreempt# network interface that virtual IP address is assignedinterface eth0# set unique ID on each VRRP interface# on the a VRRP interface, set the same ID on all nodesvirtual_router_id 101# set priority : [Master] > [BACKUP]priority 200# VRRP advertisement interval (sec)advert_int 1# virtual IP addressvirtual_ipaddress {172.19.68.109/32  dev eth0  # 必须配置 /32,否则会添加额外路由,导致2个esc节点ping不通内网}
}virtual_server 172.19.68.109 80 {delay_loop 6lb_algo sh            # 负载均衡算法 源ip_hashlb_kind TUN            # tun 模式persistence_timeout 50protocol TCPreal_server 172.19.68.110 80 {weight 1TCP_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.rhkb.cn/news/407870.html

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

相关文章

DFS 算法:记忆化搜索

我的个人主页 {\large \mathsf{{\color{Red} 我的个人主页} } } 我的个人主页 往 {\color{Red} {\Huge 往} } 往 期 {\color{Green} {\Huge 期} } 期 文 {\color{Blue} {\Huge 文} } 文 章 {\color{Orange} {\Huge 章}} 章 无 此系列更新频繁,求各位读者点赞 关…

备考计算机二级Python之Day5

第5章 函数和代码 一、函数的基本使用 函数是一段具有特定功能的、可重用的语句组,通过函数名来表示和调用。 函数的使用包括两部分:函数的定义和函数的使用 1、函数的定义 Python语言通过保留字def定义函数,语法形式如下: …

SpringBoot教程(二十四) | SpringBoot集成AOP实现日志记录

SpringBoot教程(二十四) | SpringBoot集成AOP实现日志记录 (一)AOP 概要1. 什么是 AOP ?2. 为什么要用 AOP?3. AOP一般用来干什么?4. AOP 的核心概念 (二)Spring AOP1. 简…

CSS3页面布局-三栏-中栏流动布局

三栏-中栏流动布局 用负外边距实现 实现三栏布局且中栏内容区不固定的核心问题就是处理右栏的定位&#xff0c; 并在中栏内容区大小改变时控制右栏与布局的关系。 控制两个外包装容器的外边距&#xff0c;一个包围三栏&#xff0c;一个包围左栏和中栏。 <!DOCTYPE html&…

vllm 部署GLM4模型进行 Zero-Shot 文本分类实验,让大模型给出分类原因,准确率可提高6%

文章目录 简介数据集实验设置数据集转换模型推理评估 简介 本文记录了使用 vllm 部署 GLM4-9B-Chat 模型进行 Zero-Shot 文本分类的实验过程与结果。通过对 AG_News 数据集的测试&#xff0c;研究发现大模型在直接进行分类时的准确率为 77%。然而&#xff0c;让模型给出分类原…

【软件测试面试题】WEB功能测试(持续更新)

Hi&#xff0c;大家好&#xff0c;我是小码哥。最近很多朋友都在说今年的互联网行情不好&#xff0c;面试很难&#xff0c;不知道怎么复习&#xff0c;我最近总结了一份在软件测试面试中比较常见的WEB功能测试面试面试题合集&#xff0c;希望对大家有帮助。 建议点赞收藏再阅读…

AI学习记录 - 怎么理解 torch 的 nn.Conv2d

有用就点个赞 怎么理解 nn.Conv2d 参数 conv_layer nn.Conv2d(in_channels1, out_channels 10 // 2, kernel_size3, stride2, padding0, biasFalse) in_channels in_channels 可以设置成1&#xff0c;2&#xff0c;3&#xff0c;4等等都可以&#xff0c;一般来说做图像识别…

微服务案例搭建

目录 一、案例搭建 1.数据库表 2.服务模块 二、具体代码实现如下&#xff1a; (1) 首先是大体框架为&#xff1a; &#xff08;2&#xff09;父模块中的pom文件配置 &#xff08;3&#xff09;shop_common模块&#xff0c;这个模块里面只需要配置pom.xml&#xff0c;与实体…

MySQL如何判断一个字段里面是否包含汉字

SQL查询中&#xff0c;length() 和 char_length() 都是用来获取字符串长度的函数 在单字节字符集下&#xff08;如ASCII&#xff09;&#xff1a;每个字符通常占用1个字节&#xff0c;因此length()和char_length()在这类字符集中给出的结果是一样 在多字节字符集下&#xff0…

matplotlib绘制子图以及局部放大效果

需求&#xff1a;绘制1*2的子图&#xff0c;子图1显示两个三角函数&#xff0c;子图2显示三个对数函数&#xff0c;子图2中对指定的区域进行放大。 绘图细节&#xff1a; 每个子图中每个函数的数据存放到一个列表中&#xff0c;然后将每个子图的数据统一存到一个列表中&#…

Go 使用Redis安装、实例和基本操作

Go使用Redis&#xff1a;详解go-redis/v9库 引言 Redis作为一个高性能的键值对数据库&#xff0c;广泛应用于缓存、消息队列、实时数据分析等场景。在Go语言中&#xff0c;go-redis/v9库提供了丰富的接口和高效的数据交互能力&#xff0c;使得在Go项目中集成Redis变得简单而高…

接口限流经典算法

文章目录 限流基于计数器的限流基于滑动窗口的限流桶漏斗算法令牌桶算法 限流 为了保证系统的安全性和稳定性&#xff0c;防止恶意流量和突发大量流量短时间内大量请求接口&#xff0c;造成服务器崩溃&#xff0c;接口的限流是有必要的。 以下是四种经典的限流算法。 基于计数…

Python测试框架Pytest的使用

pytest基础功能 pytset功能及使用示例1.assert断言2.参数化3.运行参数4.生成测试报告5.获取帮助6.控制用例的执行7.多进程运行用例8.通过标记表达式执行用例9.重新运行失败的用例10.setup和teardown函数 pytset功能及使用示例 1.assert断言 借助python的运算符号和关键字实现不…

UE5打包iOS运行查看Crash日志

1、查看Crash 1、通过xCode打开设备 2、选择APP打开最近的日志 3、选择崩溃时间点对应的日志 4、选择对应的工程打开 5、就能看到对应的Crash日志 2、为了防止Crash写代码需要注意 1、UObject在RemoveFromRoot之前先判断是否Root if (SelectedImage && Selecte…

Frog4Shell — FritzFrog 僵尸网络将一日攻击纳入其武器库

FritzFrog 的背景 Akamai 通过我们的全球传感器网络持续监控威胁,包括我们之前发现的威胁。其中包括FritzFrog 僵尸网络(最初于 2020 年发现),这是一个基于 Golang 的复杂点对点僵尸网络,经过编译可同时支持基于 AMD 和 ARM 的机器。该恶意软件得到积极维护,多年来通过增…

百日筑基第六十天-学习一下Tomcat

百日筑基第六十天-学习一下Tomcat 一、Tomcat 顶层架构 Tomcat 中最顶层的容器是 Server&#xff0c;代表着整个服务器&#xff0c;从上图中可以看出&#xff0c;一个 Server可以包含至少一个 Service&#xff0c;用于具体提供服务。Service 主要包含两个部分&#xff1a;Conn…

AI周报(8.18-8.24)

AI应用-XGO-Rider: 全球首款轮腿式桌面 AI 机器人 中国的 Luwu 智能打造的XGO-Rider 是全球首款轮腿式桌面 AI 机器人。这个小巧紧凑的机器人将轮式机器人的灵活性与腿式机器人的障碍处理能力相结合&#xff0c;可以全方位移动&#xff0c;轻松适应各种地形。 XGO-Rider 主要设…

服务商模式实现JSAPI小程序微信支付(javaphp)

官方文档 https://pay.weixin.qq.com/wiki/doc/apiv3_partner/open/pay/chapter2_1.shtml 使用wechatpay-php实现JSAPI支付&#xff08;服务商和普通商户&#xff09;文章浏览阅读1.3k次&#xff0c;点赞3次&#xff0c;收藏7次。之前我使用的sdk是“wechatpay-guzzle-middle…

python实用教程(二):安装配置Pycharm及使用(Win10)

上一篇&#xff1a;python实用教程&#xff08;一&#xff09;&#xff1a;安装配置anaconda&#xff08;Win10&#xff09;-CSDN博客 1、简介及下载 PyCharm是一款功能强大的 Python 编辑器&#xff0c;具有跨平台性。是Jetbrains家族中的一个明星产品。 下载地址&#xff…

redis实战——go-redis的使用与redis基础数据类型的使用场景(二)

一.go-redis操作hash 常用命令&#xff1a; redisClient.HSet("map", "name", "jack") // 批量设置 redisClient.HMSet("map", map[string]interface{}{"a": "b", "c": "d", "e"…