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 报文的频率越高。同时,还需考虑网络环境、服务器性能等因素,以确保整个系统的稳定和高效运行。

相关推荐
xiaoxiongip6669 分钟前
HTTP 和 HTTPS
网络·爬虫·网络协议·tcp/ip·http·https·ip
JaneJiazhao15 分钟前
HTTPSOK:智能SSL证书管理的新选择
网络·网络协议·ssl
CXDNW15 分钟前
【网络面试篇】HTTP(2)(笔记)——http、https、http1.1、http2.0
网络·笔记·http·面试·https·http2.0
无所谓จุ๊บ1 小时前
树莓派开发相关知识十 -小试服务器
服务器·网络·树莓派
道法自然04021 小时前
Ethernet 系列(8)-- 基础学习::ARP
网络·学习·智能路由器
EasyCVR2 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
明月看潮生3 小时前
青少年编程与数学 02-003 Go语言网络编程 15课题、Go语言URL编程
开发语言·网络·青少年编程·golang·编程与数学
龙哥说跨境4 小时前
如何利用指纹浏览器爬虫绕过Cloudflare的防护?
服务器·网络·python·网络爬虫
懒大王就是我4 小时前
C语言网络编程 -- TCP/iP协议
c语言·网络·tcp/ip
Elaine2023914 小时前
06 网络编程基础
java·网络