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

rocky9.2实现lvs(DR模式)+keepalived实现高可用的案例详解(双机热备、lvs负载均衡、对后端服务器健康检查)

文章目录

    • @[TOC]
  • 前言
    • lvs(DR模式)的工作原理
    • 环境
      • 实现过程
        • 一、lvs1配置
        • 二、lvs2配置
        • web1配置
        • web2配置
        • 结果验证
      • 总结

前言

想必能搜到这个也不是来看知识点的,这里就简单描述一下lvs的dr模式的工作原理,其他的就不过多阐述了,直接看操作步骤就好,还是很详细的

lvs(DR模式)的工作原理

LVS DR(Direct Routing)模式通过一个负载均衡器的虚拟 IP 地址(VIP)接收客户端请求,然后将请求转发给后端真实服务器(RIP),而不经过负载均衡器的返回路径,真实服务器直接将响应发回客户端。这也是和nat模式的区别所在,nat模式则需要经过负载均衡器返回。DR这种模式提高了性能和资源利用率,但所有真实服务器必须在同一局域网内。

环境

系统主机名ip服务虚拟ip
rocky9.2lvs1192.168.10.11lvs+keepalived192.168.10.111
rocky9.2lvs2192.168.10.12lvs+keepalived192.168.10.111
rocky9.2web1192.168.10.13httpd
rocky9.2web2192.168.10.14httpd
rocky9.2client192.168.10.11仅访问使用

需要注意的地方
这篇博文的操作部分是根据原先centos7版本的笔记来做的,改了一些部分,可能有一些多余的操作,但最后结果是没有问题的

实现过程

一、lvs1配置

1.dnf安装ipvsadm和keepalived

yum -y install ipvsadm keepalived

2. 加载ip_vs模块

modprobe ip_vs

3.修改内核参数,关闭icmp重定向

vim /etc/sysctl.conf
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.send_redirects=0
net.ipv4.conf.ens33.send_redirects=0

使配置生效

sysctl -p

4.配置keepalived
主要有双机热备、lvs负载均衡、对后端服务器健康检查

vim /etc/keepalived/keepalived.conf 
   global_defs {router_id LVS_DEVEL1}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.111}}virtual_server 192.168.10.111 80 {delay_loop 3lb_algo rrlb_kind DRpersistence_timeout 0protocol TCPreal_server 192.168.10.13 80 {weight 1TCP_CHECK {connect_timeout 10retry 3delay_before_retry 3connect_port 80}}real_server 192.168.10.14 80 {weight 1TCP_CHECK {connect_timeout 10retry 3delay_before_retry 3connect_port 80}}}

5.启动keepalived服务

systemctl start keepalived
systemctl enable keepalived

不出意外的话ip add 是能看到虚拟ip的

ip add

在这里插入图片描述

二、lvs2配置

这里跟lvs1同步,区别仅在于keepalived配置文件

vim /etc/keepalived/keepalived.conf 
   global_defs {router_id LVS_DEiVEL2}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 99advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.10.111}}virtual_server 192.168.10.111 80 {delay_loop 3lb_algo rrlb_kind DRpersistence_timeout 0protocol TCPreal_server 192.168.10.13 80 {weight 1TCP_CHECK {connect_timeout 10retry 3delay_before_retry 3connect_port 80}}real_server 192.168.10.14 80 {weight 1TCP_CHECK {connect_timeout 10retry 3delay_before_retry 3connect_port 80}}}
web1配置

1.配置虚拟ip
因为lvs是dr模式,所以这里也需要配置虚拟ip才行
本来想配置永久ip地址的,结果老是出问题,所以这里就配置临时ip了
不过更怪的就来了,我重启这个接口后这个ip还会存在
呃呃呃,凑合用吧

ip addr add 192.168.10.111/32 dev lo

2.添加一条到虚拟ip的路由

route add -host 192.168.10.111 dev lo

3.关闭到虚拟IP的arp响应

vim /etc/sysctl.conf
net.ipv4.conf.default.arp_ignore = 1 
net.ipv4.conf.all.arp_ignore = 1 
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.default.arp_announce =2 
net.ipv4.conf.all.arp_announce =2
net.ipv4.conf.lo.arp_announce = 2

使配置生效

sysctl -p

4.配置服务(httpd)

yum -y install httpd
echo web1 > /var/www/html/index.html
systemctl start httpd
systemctl enable httpd

浏览器查看
在这里插入图片描述

web2配置

同web1
区别仅有web页面内容不一样

echo web2 > /var/www/html/index.html

浏览器查看
在这里插入图片描述

结果验证

客户机(client)访问虚拟ip
在这里插入图片描述

在lvs1断开主keepalived查看热备效果

systemctl stop keepalived
ip add

可以看到已经没有虚拟ip了

在这里插入图片描述
在lvs2查看

ip add

可以看到虚拟ip地址已经转移过去了
在这里插入图片描述
客户机访问
可以看到客户机访问也是没有问题
在这里插入图片描述
恢复主keepalived

systemctl start keepalived
ip add

可以看到虚拟地址已经回来了
在这里插入图片描述
lvs2查看
虚拟地址已经消失
在这里插入图片描述
客户端访问验证
依旧没有问题
在这里插入图片描述

总结

大体就是上面这些操作了
如果能看到这里,提前祝大家国庆快乐,吃好玩好


http://www.mrgr.cn/news/39367.html

相关文章:

  • 端侧多模态 | 不到10亿参数的端侧Agent竟媲美GPT-4V?AI手机不远了!
  • Java 之 ssm框架入门
  • Java中的PriorityQueue详解
  • 2-107 基于matlab的hsv空间双边滤波去雾图像增强算法
  • 清理windows 内存 (RamMap)
  • 鸿蒙开发(NEXT/API 12)【硬件(振动开发1)】振动
  • calibre-web浏览器标题icon修改
  • “找不到emp.dll,无法继续执行代码”需要怎么解决呢?分享6个解决方法
  • ORM的了解
  • 每日OJ_牛客_NC95数组中的最长连续子序列_排序+模拟_C++_Java
  • 【LLM大模型】Ollama 运行 GGUF 模型
  • 【数学二】一元函数微分学- 利用微分的概念、定理、几何含义求解
  • 基本数据结构简记
  • 在Python中实现多目标优化问题(2)
  • Springboot中基于注解实现公共字段自动填充
  • 第十一章 【前端】调用接口(11.1)——Vite 环境变量
  • 微商伙伴软件功能介绍
  • spring简短注入
  • 通信工程学习:什么是OFDM正交频分复用
  • 再次重逢,愿遍地繁花