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