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

启动ip_vs模块

modprobe ip_vs

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

vim keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   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
                }
        }
}

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

ip add 

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

配置成功

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

从服务器上

vim   /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     [email protected]
     [email protected]
     [email protected]
   }
   notification_email_from [email protected]
   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
                }
        }
}

Keepalived+LVS负载均衡_第1张图片

检查是否配置成功 关闭主服务器keepalived
Keepalived+LVS负载均衡_第2张图片
Keepalived+LVS负载均衡_第3张图片
配置成功
节点服务器参考上一篇博客的配置

你可能感兴趣的:(lvs,负载均衡,github)