• Keepalived+LVS负载均衡


    Keepalived 是一个用于实现高可用性的开源软件,它基于 VRRP(Virtual Router Redundancy Protocol)协议,允许多台服务器协同工作,以确保在某个服务器出现故障时服务的连续性。Keepalived 的核心思想是将多台服务器配置成主服务器(MASTER)和备份服务器(BACKUP),它们共享一个虚拟 IP 地址(VIP),并使用 VRRP 协议来协调主备之间的状态。

    以下是 Keepalived 的主要模块及其作用的介绍:

    1. Core 模块

      • Core 模块是 Keepalived 的核心部分,负责主进程的启动、维护以及全局配置文件的加载和解析。
      • 它负责处理配置文件中定义的主备服务器角色、虚拟 IP 地址、VRRP 参数等重要信息。
      • Core 模块还管理着 VRRP 模块和 Check 模块的运行,并协调它们之间的工作。
    2. VRRP 模块

      • VRRP 模块是 Keepalived 中非常重要的组成部分,用于实现 VRRP 协议。
      • VRRP 协议允许主备服务器之间协调工作,以确保主服务器的高可用性。
      • 主要功能包括:
        • 虚拟 IP 的创建和管理:VRRP 模块负责创建和维护虚拟 IP 地址,该虚拟 IP 地址会漂移到备份服务器当主服务器不可用时。
        • VRRP 通告的发送和接收:主服务器定期发送 VRRP 通告消息,备份服务器监听这些消息以检测主服务器的状态。
        • 自动故障切换:当备份服务器检测到主服务器不可用时,它会接管虚拟 IP,确保服务的连续性。
        • 配置和状态同步:VRRP 模块确保主备服务器之间的配置和状态保持同步,以便顺利进行主备切换。
    3. Check 模块

      • Check 模块负责执行健康检查,以确定主服务器和备份服务器的状态。
      • 健康检查可以采用多种方式,包括端口检查、URL 检查等。
      • 健康检查的目的是确保主服务器正常运行,如果主服务器出现问题,备份服务器可以接管服务。
      • Check 模块会定期检查服务器的可用性,并将检查结果传递给 VRRP 模块,以影响主备切换的决策。

    Keepalived 的工作流程如下:

    1. 主服务器和备份服务器都运行 Keepalived,并通过配置文件指定自己的角色和虚拟 IP 地址。
    2. 主服务器定期发送 VRRP 通告消息,备份服务器监听这些消息以检测主服务器的状态。
    3. 同时,Check 模块会执行健康检查,确保主服务器的可用性。
    4. 如果主服务器出现故障或不可用,备份服务器会接管虚拟 IP 地址,继续提供服务。
    5. 当主服务器恢复正常时,它可以再次接管虚拟 IP 地址,恢复为主服务器的角色。

    Keepalived 提供了一个强大的工具,可用于确保基于 LVS 的服务在面临硬件或软件故障时保持高可用性。它在数据中心和网络环境中广泛使用,用于构建可靠的负载均衡和高可用解决方案。通过合理配置和使用 Keepalived,可以降低单点故障的风险,提高系统的可用性和稳定性。

    keepalived+LVS负载均衡

    这次实验使用LVS的DR模式
    主DR 服务器:192.168.2.14
    备DR 服务器:192.168.2.15
    Web 服务器1:192.168.2.12
    Web 服务器2:192.168.2.13
    vip:192.168.2.188
    1配置主DR服务器
    安装 ipvsadm软件和keepalived软件

    yum -y install ipvsadm keepalived
    
    • 1

    启动ip_vs模块

    modprobe ip_vs
    
    • 1

    (1)配置keeplived(主、备DR 服务器上都要设置)

    vim keepalived.conf
    
    • 1
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       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_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 100
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.2.188
        }
    }
    
    virtual_server 192.168.2.188 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 50
        protocol TCP
    
        real_server 192.168.2.12 80 {
            weight 1
     TCP_CHECK {
                            connect_port 80
                            connect_timeout 3
                            nb_get_retry 3
                            delay_before_retry 3
                    }
            }
    
    
             real_server 192.168.2.13 80 {
            weight 1
            TCP_CHECK {
                            connect_port 80
                            connect_timeout 3
                            nb_get_retry 3
                            delay_before_retry 3
                    }
            }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    配置完成
    查验是否配置成功

    ip add 
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    配置成功

    scp /etc/keepalived/keepalived.conf 192.168.2.15:/etc/keepalived/keepalived.conf
    
    • 1

    从服务器上

    vim   /etc/keepalived/keepalived.conf
    
    • 1
    ! Configuration File for keepalived
    
    global_defs {
       notification_email {
         acassen@firewall.loc
         failover@firewall.loc
         sysadmin@firewall.loc
       }
       notification_email_from Alexandre.Cassen@firewall.loc
       smtp_server 127.0.0.1
       smtp_connect_timeout 30
       router_id LVS_02
       vrrp_skip_check_adv_addr
    #  vrrp_strict
       vrrp_garp_interval 0
       vrrp_gna_interval 0
    }
    
    vrrp_instance VI_1 {
        state BUCKUP
        interface ens33
        virtual_router_id 51
        priority 90
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            192.168.2.188
        }
    }
    
    virtual_server 192.168.2.188 80 {
        delay_loop 6
        lb_algo rr
        lb_kind DR
        persistence_timeout 50
        protocol TCP
    
        real_server 192.168.2.12 80 {
            weight 1
             TCP_CHECK {
                            connect_port 80
                            connect_timeout 3
                            nb_get_retry 3
                            delay_before_retry 3
                    }
            }
    
    
             real_server 192.168.2.13 80 {
            weight 1
            TCP_CHECK {
                            connect_port 80
                            connect_timeout 3
                            nb_get_retry 3
                            delay_before_retry 3
                    }
            }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    在这里插入图片描述

    检查是否配置成功 关闭主服务器keepalived
    在这里插入图片描述
    在这里插入图片描述
    配置成功
    节点服务器参考上一篇博客的配置

  • 相关阅读:
    第12章 软件测试基础 12.1-软件测试 12.2-验证与确认 12.3-软件缺陷
    基于深度学习的车道检测(一)
    java计算机毕业设计基于web的面向公众的食品安全知识系统源码+数据库+系统+lw文档+mybatis+运行部署
    大学校园IP网络广播-厂家基于局域网的大学校园IP广播设计指南
    Javascript 使用技巧
    二分答案(求最大值的最小值||求最小值的最大值)
    Java项目:基于JSP+Servlet的网上订餐管理系统
    外呼系统用回拨模式打电话有什么优势
    Python中的os模块是不是慢慢被淘汰了?
    Redis 双写一致原理篇
  • 原文地址:https://blog.csdn.net/weixin_55707333/article/details/132992044