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

  • 相关阅读:
    Ceph入门到精通-进入维保模式设置命令set noout
    【Rust基础②】流程控制、模式匹配
    24. 从零用Rust编写正反向代理,细说HTTP行为中的几种定时器
    Kotlin的泛型约束
    2022Python最新面试题整理
    为什么你的敏捷总是不成功?
    【阅读笔记】Java游戏服务器架构实战(待更新)
    LiveNVR流媒体服务Onvif/RTSP平台支持云端录像服务器上面集中录像存储在部署LiveNVR的服务器上面
    从此 Typora 代码块有了颜色
    什么是甘特图?什么是项目管理?
  • 原文地址:https://blog.csdn.net/2402_84868182/article/details/140353246