LVS+Keepalive高可用

1、keepalive

调度器的高可用

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

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

1、配优先级

2、配置vip和真实服务器

3、主备的id要一致

4、主备的id要区分

2、怎么检测这个漂移?

nginx状态停止同时keepalive也要同时停掉

3、keeplive的脑裂怎么解决?

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

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

高可用的HA架构

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

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

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

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

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

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

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

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

4、实验keepalive+nginx实现高可用

安装keepalive脚本

yum -y install keeplived

 编辑一个监控脚本,监控当nginx服务被关闭时,keepalive实现切换功能

check_nginx.sh
#!/bin/bash
/usr/bin/curl -I http://localhost &> /dev/null  调用路径
if [ $? -ne 0 ] 返回码为零执行下面内容
thensystemctl stop keepalived
fi

开启nginx服务

脚本赋执行权限

修改keepalive的配置文件

主配置

cd /etc/keepalived
vim  keepalived.conf
----------------------
global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1#邮箱发送到本地smtp_connect_timeout 30router_id LVS_01vrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables#关闭iptables
}
#跟踪模块,调用脚本检测nginx状态vrrp_script check_nginx{script "/opt/check_nginx.sh"#检测的间隔时间为5秒interval 5
}
vrrp_instance VI_1 {state MASTERinterface ens33#修改网卡virtual_router_id 51#id号需一致priority 120#优先级advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.100#vip地址}  #监控模块,检查track_script{check_nginx}   }wq
[root@localhost keepalived]# systemctl restart keepalived.service 

检查状态

当nginx关闭,5秒后检查keepalive状态也关闭

备服务器

 将主服务去配置文件发送给备并稍作修改

global_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_02#idvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0vrrp_iptables
}vrrp_script check_nginx {script "/opt/check_nginx.sh"interval 5
}
vrrp_instance VI_1 {state BACKUP#备服务器interface ens33virtual_router_id 51priority 100#优先级比主低advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.100}track_script {check_nginx}
}

在主上查询keepalive是否配置成功,当主服务器的nginx服务被关闭,相对于的keepalive也会关闭,虚拟vip切换到备用服务器,依旧可以工作,切换后主服务的nginx服务开启,keepalive开启,vip地址切换到主服务器。

关闭主服务的nginx查看备服务器的keepalive切换成功

查看主备的keepalive状态

当主服务器关闭nginx服务,使用客户端访问vip显示内容为由nginx1的转换成nginx2的内容,表示切换到备服务器。

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

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

相关文章

我想做信号通路分析,但我就是不想学编程

“我想做信号通路分析,但我就是不想学编程。” “我又不是生信狗,学代码会死。” “你们这些做生信的,整天把数据分析搞得神神秘秘,不就是怕被人抢饭碗而已嘛。” “这都没分析出我想要的结果,不靠谱。” “你们做…

【自学安全防御】二、防火墙NAT智能选路综合实验

任务要求: (衔接上一个实验所以从第七点开始,但与上一个实验关系不大) 7,办公区设备可以通过电信链路和移动链路上网(多对多的NAT,并且需要保留一个公网IP不能用来转换) 8,分公司设备可以通过总…

使用Docker创建并运行一个create-react-app应用(超简单)

创建并运行一个使用 Create React App (CRA) 创建的应用程序的 Docker 容器涉及几个步骤。以下是一个详细的过程,包括创建一个简单的 React 应用、编写 Dockerfile、构建镜像以及运行容器。 步骤 1: 创建一个新的 React 应用 如果你还没有一个 React 应用&#xf…

Java爬虫安全策略:防止TikTok音频抓取过程中的请求被拦截

摘要 在当今互联网时代,数据采集已成为获取信息的重要手段。然而,随着反爬虫技术的不断进步,爬虫开发者面临着越来越多的挑战。本文将探讨Java爬虫在抓取TikTok音频时的安全策略,包括如何防止请求被拦截,以及如何提高…

RK3568 安卓12 EC20模块NOCONN没有ip的问题(已解决)

从网上东拼西凑找了不少教程,但是里面没有提到rillib.so需要替换,替换掉就可以上网了,系统也有4G图标了。 注意,这个rillib.so是移远提供的。把他们提供的文件放到rk3568_android_sdk/vendor/rockchip/common/phone/lib下&#x…

Andriod Stdio新建Kotlin的Jetpack Compose简单项目

1.选择 No Activity 2.选择kotlin 4.右键选择 在目录MyApplication下 New->Compose->Empty Project 出现下面的画面 Finish 完成

C++——类和对象(中)

文章目录 一、类的默认成员函数二、构造函数三、析构函数四、拷⻉构造函数五、赋值运算符重载1. 运算符重载2. 赋值运算符重载 六、取地址运算符重载const成员函数取地址运算符重载 七、应用:⽇期类实现Date.hDate.cpptest.cpp 一、类的默认成员函数 默认成员函数就…

技术成神之路:设计模式(七)状态模式

1.介绍 状态模式(State Pattern)是一种行为设计模式,它允许一个对象在其内部状态改变时改变其行为。这个模式将状态的相关行为封装在独立的状态类中,并将不同状态之间的转换逻辑分离开来。 2.主要作用 状态模式的主要作用是让一个…

数据结构—链式二叉树-C语言

代码位置:test-c-2024: 对C语言习题代码的练习 (gitee.com) 一、前言: 在现实中搜索二叉树为常用的二叉树之一,今天我们就要通过链表来实现搜索二叉树。实现的操作有:建二叉树、前序遍历、中序遍历、后序遍历、求树的节点个数、求…

SMU Summer 2024 Contest Round 4

SMU Summer 2024 Contest Round 4 2024.7.16 9:00————11:00 过题数3/7 补题数6/7 Made Up H and V Moving Piece Sum of Divisors Red and Green Apples Rem of Sum is Num Keep Connect A - Made Up 题解: 给定三个数组a,b,c&#xf…

MySQL日期和时间相关函数

目录 1. 获取当前时间和日期 2. 获取当前日期 3. 获取当前时间 4. 获取单独的年/月/日/时/分/秒 5. 添加时间间隔 date_add ( ) 6. 格式化日期 date_format ( ) 7. 字符串转日期 str_to_date () 8. 第几天 dayofxx 9. 当月最后一天 last_day ( ) 10. 日期差 datedif…

H. Beppa and SwerChat【双指针】

思路分析&#xff1a;运用双指针从后往前扫一遍&#xff0c;两次分别记作数组a&#xff0c;b&#xff0c;分别使用双指针i和j来扫&#xff0c;如果一样就往前&#xff0c;如果不一样&#xff0c;i–,ans #include<iostream> #include<cstring> #include<string…

SQL server 练习题2

课后作业 作业 1&#xff1a;自己查找方法&#xff0c;将 homework_1.xls 文件数据导入到 SQLServer 的 homework 数据库中。数据导入完成后&#xff0c;把表名统一改为&#xff1a;外卖表 如下所示&#xff1a; 作业 2&#xff1a;找出所有在 2020 年 5 月 1 日至 5 月 31 …

Zookeeper之CAP理论及分布式一致性算法

CAP理论 CAP理论告诉我们&#xff0c;一个分布式系统不可能同时满足以下三种 一致性&#xff08;C:consistency&#xff09;可用性&#xff08;A:Available&#xff09;分区容错性&#xff08;P:Partition Tolerance&#xff09; 这三个基本要求&#xff0c;最多只能同时满足…

python 语法学习 day2

python有七大数据类型, 数据类型转换, 多变量赋值与print间隔, split函数, int用法总结python有七大数据类型&#xff1a; &#xff08;1&#xff09;数字&#xff08;Number&#xff09;&#xff1a;int(整型&#xff0c;长整型)&#xff0c;float(浮点型)&#xff0c;com…

部署k8s 1.28.9版本

继上篇通过vagrant与virtualBox实现虚拟机的安装。笔者已经将原有的vmware版本的虚拟机卸载掉了。这个场景下&#xff0c;需要重新安装k8s 相关组件。由于之前写的一篇文章本身也没有截图。只有命令。所以趁着现在。写一篇&#xff0c;完整版带截图的步骤。现在行业这么卷。离…

SpringBoot中常用的注解及其用法

1. 常用类注解 RestController和Controller是Spring中用于定义控制器的两个类注解. 1.1 RestController RestController是一个组合类注解,是Controller和ResponseBody两个注解的组合,在使 用 RestController 注解标记的类中&#xff0c;每个方法的返回值都会以 JSON 或 XML…

【Android安全】Ubuntu 下载、编译 、刷入Android-8.1.0_r1

0. 环境准备 Ubuntu 16.04 LTS&#xff08;预留至少95GB磁盘空间&#xff0c;实测占94.2GB&#xff09; Pixel 2 XL 要买欧版的&#xff0c;不要美版的。 欧版能解锁BootLoader、能刷机。 美版IMEI里一般带“v”或者"version"&#xff0c;这样不能解锁BootLoader、…

网络安全-网络安全及其防护措施2

6.安全设计和日志 安全审计 安全审计是对系统和网络活动进行检查和记录的过程&#xff0c;确保合规性和安全性。审计过程可以帮助发现潜在的安全漏洞和违规行为&#xff0c;并验证系统配置和操作的正确性。 定期审计 定义&#xff1a;定期检查系统和网络的安全配置和活动记录…

394. 字符串解码 739. 每日温度(LeetCode热题100)

394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; curr_str&#xff1a;遍历整个字符串时 如果左边有[&#xff0c;且无相应右括号和其匹配&#xff0c;那么curr_str就表示该[到当前位置的解码字符串如果左边的[]已经匹配&#xff0c;或者没有[]&#xff0c;curr_siz…