1. Keepalived介绍

Keepalived是一款开源的负载均衡软件,基于VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)实现高可用性。主要用于解决网络服务的单点故障问题,尤其在集群环境中提供VIP(Virtual IP,虚拟IP地址)共享和故障切换功能。当主节点发生故障时,Keepalived能够快速将VIP漂移到备份节点上,确保服务的连续性和稳定性。它通过保护用户的业务程序对外不间断提供的服务,把因软件、硬件、人为造成的故障对业务的影响降低到最小程度。

主要功能:

负载均衡:通过LVS(Linux Virtual Server)模块提供四层负载均衡。
高可用:利用VRRP协议实现网络服务的高可用性,即当主服务器失效时,备用服务器能立即接管其VIP和服务。

2.keepalived工作原理

 keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议。

将N台提供相同功能的服务器组成一个服务器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该服务器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级来选举一个backup当master

 3. Keepalived安装

 yum -y install ipvsadm keepalived 

 4. Keepalived基本配置详解

Keepalived的主要配置文件是`/etc/keepalived/keepalived.conf`,该文件中包含了全局配置以及两个主要组件VRRP实例和LVS实例的配置。

4.1 VRRP实例配置示例
global_defs {
    notification_email {
        root@localhost
    }
    router_id LVS_DEVEL # 定义本机在VRRP中的标识符
}

vrrp_instance VI_1 {  VRRP实例ID
    state MASTER # 设置初始状态为MASTER或BACKUP
    interface eth0 # 网络接口,VIP将绑定在此接口上
    virtual_router_id 51 # 虚拟路由器ID,同一组内必须一致
    priority 101 # 主节点优先级高于备份节点
    advert_int 1 # VRRP通告间隔,默认为1秒
    authentication {
        auth_type PASS # 认证类型,可选PASS(密码)或AH(加密)
        auth_pass password # 共享认证密码
    }
    virtual_ipaddress {
        192.168.100.150/24 dev eth0 # VIP地址与子网掩码及接口
    }
}

4.2 LVS配置示例

定义LVS实例(NAT模式示例):
virtual_server_group web_serg {
    lb_algo rr # 负载均衡算法,如轮询(ROUND ROBIN)
    lb_kind NAT # 负载均衡类型,此处为NAT方式

    real_server 192.168.100.101:80 {
        weight 1 # 权重
        TCP_CHECK { # 检查后端服务器健康状况
            connect_timeout 3 # 连接超时时间
            nb_get_retry 3 # 尝试获取次数
            delay_before_retry 3 # 重试前等待时间
            connect_port 80 # 监控端口
        }
    }

    real_server 192.168.100.102:80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
            connect_port 80
        }
    }
}

virtual_server 192.168.100.150 { # VIP地址和监听端口
    delay_loop 6 # 健康检查间隔
    protocol TCP
    use_backend web_serg # 使用前面定义的虚拟服务器组
}
```

5 配置完成后重启服务

修改完配置文件后,需要重启Keepalived服务以应用新的配置:
systemctl restart keepalived

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐