lvs加keepalive高可用集群

news2024/11/15 8:13:57

lvs集群当中的高可用架构只是针对调度器的高可用

基于vrrp来实现调度器的主和备

高可用的HA架构

主调度器和备调度器(多台)

在主调度器正常工作的时候,备完全处于冗余状态(待命),不参与集群的运转,只有当主调度器出现故障时,备才会承担主调度器的工作。主调度器恢复功能后,主继续做为集群的入口,备继续处于冗余状态(取决于优先级)

keepalive基于vrrp协议来实现lvs高可用的方案

1、组播地址:

224.0.0.18,根据组播地址来进行通信,主和备之间发送报文,确定对方是否存活

2、根据优先级的大小来确定主和备的位置

3、故障切换,主挂了,备来继续工作,主恢复了,备继续等待

4、主和备之间的切换是vip地址的切换

keepalive是专门为了lvs而出现的,但是不是lvs专用的

keepalive是调度器的高可用

vip地址主备之间的切换,主在工作时,vip地址只在主上,主停止工作,vip漂移到备服务器

在主备的优先级不变的情况下,主恢复工作,vip会漂移回到主服务器

1、配优先级

2、配置vip和真实服务器

3、主备的id要一致

4、主备的id要区分

keepalive也可以使用nginx,haproxy

keepalive+nginx实现高可用

*问:脑裂是什么?

HA架构(高可用架构)中的一个特殊现象,只要使用VIP地址代理的冗余模式的高可用,都有可能出现脑裂的问题。即主和备同时都有VIP地址。

主和备无法确定各自的身份,同时出现了VIP地址,两边都起来了,但两边都无法使用。

可能原因:

1、keepalive的配置文件问题

2、心跳线(网线)断了,老化

3、网卡问题(硬件),ip地址配置冲突

4、防火墙的策略,iptables的策略,屏蔽了组播的地址广播,屏蔽了vrrp协议的报文

5、两台服务器的时间不同步也可能导致

6、其他的服务配置对心跳线的检测造成了干扰

怎么解决脑裂?

1、检查硬件,网卡,网线等

2、查看主备节点的keepalived日志,查看具体报错信息,定位问题

3、检查端口冲突和监听设置,确保其他服务没有占用keepalived使用的VIP或者监控端口。

4、查看配置文件,检查IP地址配置、心跳线检测的间隔和超时时间等配置是否合理

5、查看防火墙策略,确定心跳线检测消息没有被屏蔽

6、查看服务器网络状态,以及时间是否同步

7、准备两条心跳线,这样一条坏了,另一条仍然能继续传送

keepalive实验:

test1 192.168.233.10 主

test2 192.168.233.50 备

vip 192.168.233.100

nginx1 192.168.233.20

nginx2 192.168.233.30

客户端  192.168.233.40

步骤

1.主和备都要同样操作    

yum -y install ipvsadm keepalived

vim /etc/sysctl.conf

net.ipv4.ip_forward=0
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0

sysctl -p

ipvsadm -C

ipvsadm -A -t 192.168.233.100:80 -s rr

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.20:80 -g

ipvsadm -a -t 192.168.233.100:80 -r 192.168.233.30:80 -g

ipvsadm-save >/etc/sysconfig/ipvsadm

systemctl restart ipvsadm

ipvsadm -ln

2、修改主的配置文件

 cd /etc/keepalive 

vim keepalived.conf

3、修改备的配置文件

实验结果:

keepalive+nginx实现高可用(主备切换)

数据流向:

实验步骤:

1.vim check_nginx.sh

写一个check_nginx.sh的脚本

#!/bin/bash
/usr/bin/curl -I http://localhost &> /dev/null
if [ $? -ne 0 ]
then
systemctl stop keepalived
fi

2、主的配置

 chmod 777 check_nginx.sh

     cd /etc/keepalived/

    vim keepalived.conf

script "/opt/check_nginx.sh"

调用脚本内容,检测nginx的状态

interval 5

检测的间隔时间是5s

可以删除这个后面的所有内容并添加监控配置

重启

systemctl restart nginx

systemctl restart keepalived

3、备的配置

把主的配置复制到备进行修改

scp root@192.168.233.20:/etc/keepalived/keepalived.conf /etc/keepalived/

cd /etc/keepalived/

vim keepalived.conf

实验结果

如果主nginx停止 keepalive也自动停止  备启用,vip偏移到备上

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

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

相关文章

深入解析Nginx限流策略:如何高效控制访问频率

摘要:本文将详细介绍Nginx限流模块的使用方法,包括基于IP地址的限流、基于并发连接的限流以及如何应对突发流量。通过实际案例,帮助读者掌握Nginx限流策略,确保服务器在高并发场景下的稳定运行。 一、引言 在高并发场景下&#x…

Vscode下ESP32工程函数定义无法跳转

1.删除.vscode 2.按下 ctrlshiftp,搜索 ESP-IDF:Add vscode Configuration Folder

SwinIR速读

SwinIR发表在ICCV21,它核心创新在于使用了SwinTransformer(同年ICCV best paper)进行图像修复,由ETH的CVL提出,大组还是抓前沿抓得好,不仅能想到,还能做出来性能,而且性能还是稳定的增益,通用性强。 目前&a…

TCP Window Full TCP Zero Window

TCP window Full & TCP Zero Window 注: 192.168.60.67 是客户端IP10.250.251.223是服务端IP 当客户端向服务发送多个280大小应用层数据时,在No 45帧数据时发生TCP Window Full,应用发送280字节,实际发出去只有67个字节。28…

机器学习——逻辑回归(学习笔记)

目录 一、认识逻辑回归 二、二元逻辑回归(LogisticRegression) 1. 损失函数 2. 正则化 3. 梯度下降 4. 二元回归与多元回归 三、sklearn中的逻辑回归(自查) 1. 分类 2. 参数列表 3. 属性列表 4. 接口列表 四、逻辑回归…

11.面试题——消息队列RabbitMQ

1.RabbitMQ是什么?特点是什么? RabbitMQ是一种开源的消息队列中间件,用于在应用程序之间进行可靠的消息传递。它实现了AMQP(Advanced Message Queuing Protocol)协议,提供了强大的消息处理能力。RabbitMQ的…

DVWA—SQL Injection

DVWA—SQL Injection实例 1. low等级 进入界面后,可以看到它是一个ID的查找内容的输入框,我们输入数字1、2可以看到是从后端返回数据库相应的数据,但是我们作为SQL注入的最终目标是得到更多有关的信息,所以我们需要通过构造payl…

【生成式人工智能-九-大型语言模型的幻觉、偏见等安全性问题】

大型语言模型的安全性 幻觉对语言模型的输出做核查 偏见消除偏见的方法 鉴别是否是人工智能输出prompt hacking 语言模型被骗做事情jailbreakingjailbreaking的危害 prompt injection 今天还是先来谈一下有哪些安全性问题,以及简单介绍有那些应对方案。 幻觉 看过大…

BugKu CTF Misc:

前言 BugKu是一个由乌云知识库(wooyun.org)推出的在线漏洞靶场。乌云知识库是一个致力于收集、整理和分享互联网安全漏洞信息的社区平台。 BugKu旨在提供一个实践和学习网络安全的平台,供安全爱好者和渗透测试人员进行挑战和练习。它包含了…

写一个Vue2和vue3的自定义指令(以复制指定作为示例)

文章目录 一、自定义指令是什么?二、自定义指令有啥用?三、自定义指令怎么用?1.自定义指令的参数2.自定义指令的钩子函数(1)五个钩子函数的说明(2)钩子函数的参数(主要参数:el和valu…

高效管理视频文件,2024年视频压缩软件精选集

我的生活中处处都充满了数据的影子,不知道你是不是也这样。而且存储的数据可能由于某些失误会导致我们数据的丢失,幸运的是,现在我们掌握全免费的数据恢复工具的使用方式,就能尽可能地找回丢失的数据。 1.FOXIT数据恢复 连接直达…

解决客户访问超时1s问题

访问公网地址返回状态码499-CSDN博客 需求描述 客户访问公司公网服务,期望在1s内完成。他们在客户端设置了超时1s的配置,如果超过1s公司服务就会报错499,这是正常的请求返回。 分析问题 目前这个服务通过公网的alb负载均衡到ecs&#xff0…

Stable Diffusion绘画 | 提示词格式

推荐格式 提升画质的提示词与画风的提示词,对整体画面影响较大,建议在首行填写 画质词画风词画面主体描述环境、场景、灯光、构图Lora负面词 画质词 常规画质词: (masterpiece:1.2),best quality,highres,extremely detailed CG,perfect…

集成新的 AI 服务时需要考虑的问题

让我们来谈论最近发生的几个恐怖故事。 去年年底,一家雪佛兰经销商在其主页上部署了一个由大型语言模型 (LLM) 驱动的聊天机器人。该 LLM 经过雪佛兰汽车详细规格的训练,旨在仅回答有关雪佛兰汽车的问题。 然而,用户很快就找到了绕过这些限…

驰骋BPM RunSQL_Init接口SQL注入漏洞复现 [附POC]

文章目录 驰骋BPM RunSQL_Init接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现驰骋BPM RunSQL_Init接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,由于…

LeetCode 热题 HOT 100 (022/100)【宇宙最简单版】

【技巧】No. 0647 回文子串【中等】👉力扣对应题目指路 希望对你有帮助呀!!💜💜 如有更好理解的思路,欢迎大家留言补充 ~ 一起加油叭 💦 欢迎关注、订阅专栏 【力扣详解】谢谢你的支持&#xff…

step12:qml程序.exe生成指定图标

文章目录 0.文章内容1.在qt中改变图标效果代码 2. 在生成的build应用程序中改变图标效果代码 3. 获取.ico格式图片的连接参考文档 0.文章内容 1.在qt中改变图标 效果 代码 2. 在生成的build应用程序中改变图标 效果 代码 RC_ICONS logo2.ico 3. 获取.ico格式图片的连接 不…

vue 日期控件 100天内的时间禁用不允许选择

vue 日期控件 100天内的时间禁用不允许选择&#xff0c;可以从101天选起 比如&#xff0c;2024年8月9号开始&#xff0c;100天内禁止选择&#xff0c;第101天之后的日期可以选&#xff0c;效果如图所示 // 日期控件代码 加上 :picker-options"pickerOptions" <…

使用 Vue3 生成二维码和条形码

目录 前言 一、前期准备 1.1. 使用Vite创建工程化项目 1.2 安装所需的依赖 二、环境检查 三、生成二维码 3.1 创建二维码组件 3.2 在App.vue中使用二维码组件 四、生成条形码 4.1 创建条形码组件 4.2.在App.vue中使用条形码组件 五、启动测试与效果演示 5.1 启动de…

【前端可视化】大屏可视化项目三 包含了横向柱形图、竖向柱形图、雷达图、环形图、关系图、数据云图、数据展示图和地图可视化等八个部分

基于vite与tailwindcss创建大屏可视化 项目准备 传统的三列布局 <template><div class"w-full h-full"><div v-if"loading" class"bg-[url(assets/images/bg.png)] bg-cover bg-center loading-container h-screen w-full flex jus…