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

keepalived

keepalived起初是专门为lvs设计的,用于对后端负载均衡集群做检测,之后又引入了vrrp链路冗余协议,以主备模式构成高可用集群。

脑裂:由于心跳检测线断开导致主备之间相互检测不到对方信息,就会都以为对方宕机而相互争抢资源,导致服务无法正常的运行。

keepalived构成:

core模块:用于配置文件的加载,启动

check模块:用于对后端做健康检查,包括通过,http,icmp,tcp等方式来确保后端服务器状态。

vrrp模块:会生成vrrpd进程,通过主备之间相互发送vrrp报文来确保相互之间的存活,当主设备宕机之后,备设备会立即接管主设备的资源来确保整个集群的正常运行。

服务部署:

两台主机分别下载keepalived软件,并且修改配置文件,形成主备设备,做成简单高可用集群

修改网卡ens160,设为master主设备。优先级改为100,修改vip

备份设备,将master改为slave备份,优先级改为80,其余与主设备相同。

测试:在集群启动后,vip首先会被绑定到master设备上(优先级高),在将master设备宕机后,vip或发生漂移,此时vip会漂移到备设备网卡上。由于keepalived默认是抢占模式,所以当msater设备上线后vip还会再次漂移到master设备上。

 vrrp抢占和非抢占模

非抢占模式:

 主设备与从设备都要配置nopreempt参数,在主设备宕机从并重启上线后主设备不会再次抢占资源

抢占模式: 

 keepalived默认是抢占模式,也就是主设备在重启重新上线后会恢复主设备身份,抢占资源

抢占延迟:

为了避免主设备上线后抢占资源。而导致网络波动,设置了抢占延迟时间,即使服务器上上线后在该时间内,仍然不会抢占备份设备的资源。

 keepalived的双主架构

在单主模式的基础上,再次添加vrrp_instance VI_1模块。绑定不同的VIP,设定优先级。

 

 keepalived+LVS实现高可用负载均衡集群:

 使用双主架构分别实现mysql四层负载和nginx七层负载

配置nginx虚拟主机

virtual_server 192.168.79.200 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.79.146 80 {
weight 1
TCP_CHECK {
connect_timeout 5
retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 192.168.79.147 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 1
retry 3
delay_before_retry 1
}
}
}

配置mysq虚拟主机

virtual_server 192.168.79.222 3306 {
delay_loop 6
lb_algo wrr
lb_kind DR
protocol TCP
real_server 192.168.79.146 3306 {
weight 1
TCP_CHECK {
connect_timeout 5
retry 3
delay_before_retry 3
connect_port 3306
}
}
real_server 192.168.79.147 3306 {
weight 1
TCP_CHECK {
connect_timeout 5
retry 3
delay_before_retry 1
connect_port 3306
}
}
}

备份主机上与msater主机上配置一致 ,同时下载ipvsadm软件。在后端服务器上要配置nignx服务与mysql服务。

mysql服务:

root@rs1 ~]# vim /etc/my.cnf

server-id=1

[root@rs1 ~]# systemctl enable --now mariadb

[root@rs1 ~]# mysql -e "grant ALL on *.* to hx@'%' identified by 'hx';"

[root@rs1 ~]# mysql -ulee -plee -h192.168.79.146 -e 'select @@server_id;'

147后端服务器主机上将server-id改成2

测试访问:

 keepalived和haproxy实现高可用负载均衡:

单主模式下使用脚本检测haproxy服务状态,用来实现VIP漂移。单主模式下只要master设备配置脚本检查

[root@localhost ~]# cat /b/test.sh
killall -0 haproxy

 在配置文件里添加脚本检查模块

 

在haproxy配置文件里编辑前后端: 

 

 

http://www.xdnf.cn/news/1201735.html

相关文章:

  • Redis做混沌测试都需要测哪些场景?预期如何?
  • 安宝特案例丨AR+AI赋能轨道交通制造:破解人工装配难题的创新实践
  • [免费]【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts)【论文+源码+SQL脚本】
  • 【代码解读】通义万相最新视频生成模型 Wan 2.2 实现解析
  • ESP32学习-按键中断
  • 【重学数据结构】二叉搜索树 Binary Search Tree
  • 源代码管理工具有哪些?有哪些管理场景?
  • [VLDB 2025]面向Flink集群巡检的交叉对比学习异常检测
  • mybatis-plus实体类主键生成策略
  • 设计模式(四)创建型:生成器模式详解
  • Java排序中(a).compareTo(b)与Integer.compare(a, b)区别
  • 推荐系统学习
  • 算法竞赛阶段二-数据结构(37)数据结构循环链表模拟实现
  • 【PCIe 总线及设备入门学习专栏 5.3.4 -- PCIe PHY Firmware 固件加载流程】
  • Android启动时间优化大全
  • 通信名词解释:I2C、USART、SPI、RS232、RS485、CAN、TCP/IP、SOCKET、modbus等
  • Window 部署 coze-stdio(coze 开发平台)
  • vue3.6更新哪些内容
  • 电子电路设计学习
  • MySQL - 索引(B+树)
  • Python Pandas.cut函数解析与实战教程
  • 力扣热题100----------41.缺少的第一个正数
  • C++算法竞赛篇(五)循环嵌套题型讲解
  • JavaScript手录07-数组
  • JavaScript核心概念全解析
  • 创建属于自己的github Page主页
  • 【Python系列】Flask 应用中的主动垃圾回收
  • 安装redis
  • 生成式召回-TIGER范式
  • Vim 编辑器工作模式及操作指南