LVS+KeepAlived高可用负载均衡集群

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

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

高可用的HA架构

主调度器和备调度器(备调度器可以有多台)

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

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

1、组播地址:

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

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

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

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

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

core模块:keepalive的核心模块,负责主进程的启动、维护以及全局配置文件的加载

vrrp模块:实现vrrp协议的模块,也就是主功能模块

check模块:负责健康检查,也可以检查后台真实服务器的情况。

基于上一章DR模式的实验,我们加上一些配置。这次用到两台调度器,一个主,一个备。

先再调度器上安装keepalive

yum -y install keepalived

安装完毕之后

我们更改这个keepalived.conf这个文件

[root@test1 ~]# vim /etc/keepalived/keepalived.conf
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id LVS_01
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
   vrrp_iptables
}

vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 120
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.124.100
    }
}

virtual_server 192.168.124.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 50
    protocol TCP

    real_server 192.168.124.40 80 {
        weight 1
            TCP_CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.124.50 80 {
                                                                     9,1           36%

复制第一个调度器里面的配置文件到第二台调度器里面

scp root@192.168.233.10:/etc/keepallved/keepallved.conf
/etc/keepallved

然后更改一下配置

主和备的优先级

添加一个iptables的选项

这样ipetables规则表里面就不会停止访问keepalive的规则

[root@localhost ~]# ipvsadm -ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.124.100:80 rr persistent 50
  -> 192.168.124.40:80            Route   1      0          0
  -> 192.168.124.50:80            Route   1      0          0

查看一下

然后都重启

看一下客户端结果

我们先关闭主调度器

stsemctl stop keepalived.servers

备的调度器接手主的工作继续工作

这是vip地址已经到备的调度器上了,客户端在访问一下

还能继续访问


总结

Keepalived 主要有三个模块:core(核心模块,负责主进程启动、维护及全局配置文件加载解析)、check(健康检查模块)和 vrrp(实现 vrrp 协议)。

Keepalived 工作原理是以 VRRP 协议为基础,将多台提供相同功能的服务器组成一个服务器组,其中有一个 master 和多个 backup。master 上有对外提供服务的 VIP(该服务器所在局域网内其他机器的默认路由为该 VIP),master 会发组播,当 backup 收不到 VRRP 包时就认为 master 宕掉了,然后根据 VRRP 的优先级来选举一个 backup 成为新的 master。

在配置 LVS + Keepalived 时,通常需要在 master 和 backup 节点上安装相关软件(如 ipvsadm、keepalived),并配置 keepalived.conf 文件。例如,在 master 节点的配置文件中,需指定状态(state)为 master、网络接口(interface)、虚拟路由 ID(virtual_router_id)、优先级(priority)、通告时间间隔(advert_int)、认证信息(authentication)以及虚拟 IP 地址(virtual_ipaddress)等;backup 节点的配置类似,但状态为 backup,优先级通常低于 master。

配置完成后重启 keepalived 服务,即可实现高可用的负载均衡。当 master 节点故障时,VIP 会自动切换到 backup 节点,保证服务正常访问;master 恢复后,会再次作为主负载节点。此外,还可对真实服务器(rs)进行相应配置,如在采用 DR 模型通信时,需在 rs 的网卡上配置 lo 为 VIP。

这样,LVS + Keepalived 组合能够实现以下目标:客户端通过 VIP 访问服务,请求将根据配置规则进行分发;当 master 的负载均衡节点故障时,可自动切换到 backup 节点,确保服务正常;当某个 rs 节点故障时,能自动剔除该节点,恢复后可再次加入集群。

实际应用中,需注意相关事项,如 Keepalived 配置文件中 virtual_ipaddress 配置的 IP 地址需在同一网段;priority 值越高,节点成为主节点的概率越大;advert_int 值越小,节点发送 VRRP 报文的频率越高。同时,还需考虑网络环境、服务器性能等因素,以确保整个系统的稳定和高效运行。

相关推荐
Petrichor-瑾28 分钟前
HTTP和HTTPS的区别
网络·http·https
冰 河1 小时前
《Nginx核心技术》第16章:实现Nginx的高可用负载均衡
运维·nginx·程序员·负载均衡·高可用
丢爸2 小时前
网络学习-eNSP配置NAT
linux·网络·学习
沐风ya2 小时前
NAT技术介绍+缺陷(内网穿透+工具),NAPT(介绍,替换过程,原理,NAT转换表)
linux·服务器·网络
天启代理ip3 小时前
HTTP隧道代理:互联网冲浪的隐形翅膀
服务器·网络·爬虫·网络协议·tcp/ip
6230_3 小时前
关于HTTP通讯流程知识点补充—常见状态码及常见请求方式
前端·javascript·网络·网络协议·学习·http·html
日记成书4 小时前
【无线通信发展史⑨】1791年路易吉·伽伐尼-关于动物电的研究与1800年亚历山大·伏打伯爵-电池:伏打电池
网络·人工智能·学习·职场和发展·信息与通信
achirandliu5 小时前
SOME/IP 通信协议详细介绍
网络·网络协议·tcp/ip·some/ip
长安初雪6 小时前
计算机网络 第三章: 数据链路层概述
网络·网络协议·计算机网络
铁蛋Q6 小时前
基于udp的socket网络编程
网络·网络协议·udp