当前位置: 首页 > news >正文

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的内容,表示切换到备服务器。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • git commit时报错,LF will be replaced by CRLF the next time Git touches it
  • 视频监控汇聚平台LntonCVS视频集中存储平台解决负载均衡的方案
  • C++初阶:类和对象(二)
  • jvm 07 GC算法,内存池
  • 开源科学工程技术软件
  • 【docker 部署springboot项目】
  • 第一章 Typescript小白快速入门
  • Flowable-流程图标与流程演示
  • Flutter对接FlutterBugly 报错Zone mismatch
  • 鸿蒙开发 -本地数据库操作
  • InjectFix 热更新解决方案
  • LVS+Nginx高可用集群---keepalived原理与实战
  • 捷配PCB打样采用机械盲埋孔制造,有何优势?
  • 硅纪元视角 | 微软开发全新AI模型,革新电子表格处理效率!
  • 排队问题--逆序对应用
  • “大数据应用场景”之隔壁老王(连载四)
  • 【css3】浏览器内核及其兼容性
  • DOM的那些事
  • Intervention/image 图片处理扩展包的安装和使用
  • JavaScript中的对象个人分享
  • JSONP原理
  • oschina
  • python docx文档转html页面
  • Vue--数据传输
  • 搞机器学习要哪些技能
  • 基于axios的vue插件,让http请求更简单
  • 移动端解决方案学习记录
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ​ 无限可能性的探索:Amazon Lightsail轻量应用服务器引领数字化时代创新发展
  • ​Linux·i2c驱动架构​
  • ## 1.3.Git命令
  • #HarmonyOS:基础语法
  • #mysql 8.0 踩坑日记
  • #NOIP 2014#Day.2 T3 解方程
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (4)logging(日志模块)
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (二)PySpark3:SparkSQL编程
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (南京观海微电子)——示波器使用介绍
  • (十六)串口UART
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (一)SvelteKit教程:hello world
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转) ns2/nam与nam实现相关的文件
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 8.0 中有哪些新的变化?
  • .NET Project Open Day(2011.11.13)
  • .net Stream篇(六)
  • .NET 给NuGet包添加Readme