当前位置:   article > 正文

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

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这个文件

  1. [root@test1 ~]# vim /etc/keepalived/keepalived.conf
  2. notification_email_from Alexandre.Cassen@firewall.loc
  3. smtp_server 127.0.0.1
  4. smtp_connect_timeout 30
  5. router_id LVS_01
  6. vrrp_skip_check_adv_addr
  7. vrrp_strict
  8. vrrp_garp_interval 0
  9. vrrp_gna_interval 0
  10. vrrp_iptables
  11. }
  12. vrrp_instance VI_1 {
  13. state MASTER
  14. interface ens33
  15. virtual_router_id 51
  16. priority 120
  17. advert_int 1
  18. authentication {
  19. auth_type PASS
  20. auth_pass 1111
  21. }
  22. virtual_ipaddress {
  23. 192.168.124.100
  24. }
  25. }
  26. virtual_server 192.168.124.100 80 {
  27. delay_loop 6
  28. lb_algo rr
  29. lb_kind DR
  30. persistence_timeout 50
  31. protocol TCP
  32. real_server 192.168.124.40 80 {
  33. weight 1
  34. TCP_CHECK {
  35. connect_port 80
  36. connect_timeout 3
  37. nb_get_retry 3
  38. delay_before_retry 3
  39. }
  40. }
  41. real_server 192.168.124.50 80 {
  42. 9,1 36%

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

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

然后更改一下配置

主和备的优先级

添加一个iptables的选项

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

  1. [root@localhost ~]# ipvsadm -ln
  2. IP Virtual Server version 1.2.1 (size=4096)
  3. Prot LocalAddress:Port Scheduler Flags
  4. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  5. TCP 192.168.124.100:80 rr persistent 50
  6. -> 192.168.124.40:80 Route 1 0 0
  7. -> 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 报文的频率越高。同时,还需考虑网络环境、服务器性能等因素,以确保整个系统的稳定和高效运行。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/831818
推荐阅读
  

闽ICP备14008679号