keepalived安装配置详解

-------------------------------------------------------------------------------

 

Keepalived、LVS、Nginx 三者结合可构建 “高可用 + 高性能 + 灵活七层处理” 的负载均衡架构,广泛用于高并发业务场景(如电商、支付系统)。三者分工明确:
  • LVS:作为四层(TCP/UDP)负载均衡器,负责高性能流量分发(基于内核态,支持百万级并发);
  • Nginx:作为七层(HTTP/HTTPS)负载均衡器,负责复杂路由(如域名、URL 匹配)、缓存、SSL 卸载等;
  • Keepalived:提供高可用保障,通过 VRRP 实现 LVS/Nginx 节点的故障自动转移,避免单点故障。

一、典型架构设计

常见架构为 “LVS 四层负载 + Nginx 七层负载 + Keepalived 高可用”,整体分为三层:
  1. 接入层(VIP + Keepalived):
    • 两台节点(MASTER/BACKUP)部署 Keepalived,共享一个虚拟 IP(VIP),作为用户访问的唯一入口;
    • Keepalived 监控 LVS 和 Nginx 状态,故障时自动将 VIP 漂移到健康节点。
  2. 四层负载层(LVS):
    • 部署在 Keepalived 节点上,通过 LVS-DR(直接路由)模式分发流量(性能最优),将请求转发到后端 Nginx 集群;
    • 采用轮询(rr)或加权轮询(wrr)算法,基于源 IP 或端口实现简单负载均衡。
  3. 七层负载层(Nginx):
    • 接收 LVS 转发的流量,基于 HTTP 协议特性(如域名、路径、Cookie)进行精细化路由;
    • 后端对接应用服务器(如 Tomcat、Node.js),并提供缓存、压缩、SSL 终止等功能。

二、组件协同流程

  1. 用户通过 VIP 访问服务,请求首先到达持有 VIP 的 MASTER 节点(由 Keepalived 管理);
  2. MASTER 节点的 LVS 接收请求,根据预设算法(如 rr)将流量转发到后端 Nginx 节点;
  3. Nginx 对请求进行七层处理(如路径匹配),转发到对应的应用服务器;
  4. 若 MASTER 节点故障(如 LVS 崩溃、Nginx 宕机),Keepalived 检测到异常后,触发 VIP 漂移到 BACKUP 节点,由 BACKUP 接管服务,整个过程用户无感知。

三、具体配置步骤

1. 环境规划(示例)

节点角色IP 地址部署组件说明
MASTER 192.168.1.100 Keepalived + LVS + Nginx 主节点,初始持有 VIP
BACKUP 192.168.1.101 Keepalived + LVS + Nginx 备用节点,故障时接管 VIP
VIP 192.168.1.200 - 对外服务的虚拟 IP
Nginx 节点 1 192.168.1.102 Nginx 后端七层负载节点
Nginx 节点 2 192.168.1.103 Nginx 后端七层负载节点

2. 安装组件(所有节点)

bash
 
 
# 安装 Keepalived、LVS 工具、Nginx
yum install -y keepalived ipvsadm nginx
systemctl enable --now keepalived nginx  # 启动并设置开机自启
 

3. 配置 LVS(MASTER 和 BACKUP 节点)

LVS 采用 DR 模式(直接路由),避免流量回环,需在 LVS 节点和 Nginx 节点分别配置。
(1)LVS 节点配置(MASTER/BACKUP)
bash
 
 
# 临时配置 LVS 规则(MASTER 和 BACKUP 需一致)
ipvsadm -A -t 192.168.1.200:80 -s rr  # 添加虚拟服务(VIP:80),采用轮询算法
ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.102:80 -g  # 添加后端 Nginx 节点1(DR模式)
ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.103:80 -g  # 添加后端 Nginx 节点2(DR模式)

# 保存配置(永久生效)
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl enable --now ipvsadm  # 启动 LVS 服务
 
(2)Nginx 节点配置(192.168.1.102/103)
DR 模式下,Nginx 节点需绑定 VIP(仅用于接收 LVS 转发的流量,不响应 ARP 广播):
bash
 
 
# 创建 VIP 绑定脚本
cat > /etc/init.d/bind_vip.sh << 'EOF'
#!/bin/bash
VIP=192.168.1.200
/sbin/ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP  # 绑定 VIP 到回环接口
echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p > /dev/null 2>&1
EOF

# 执行脚本并设置开机自启
chmod +x /etc/init.d/bind_vip.sh
/etc/init.d/bind_vip.sh
echo "/etc/init.d/bind_vip.sh" >> /etc/rc.local
chmod +x /etc/rc.local
 

4. 配置 Nginx(192.168.1.102/103)

Nginx 作为七层负载均衡,转发请求到应用服务器(示例:转发到 2 台 Tomcat):
nginx
 
 
# /etc/nginx/nginx.conf
http {
    upstream app_servers {
        server 192.168.1.201:8080;  # 应用服务器1
        server 192.168.1.202:8080;  # 应用服务器2
        keepalive 32;  # 长连接优化
    }

    server {
        listen 80;
        server_name example.com;  # 绑定域名

        location / {
            proxy_pass http://app_servers;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
}
 
重启 Nginx:systemctl restart nginx

5. 配置 Keepalived(实现 LVS/Nginx 高可用)

(1)MASTER 节点(192.168.1.100)配置
conf
 
 
# /etc/keepalived/keepalived.conf
global_defs {
    router_id LVS_MASTER
}

# 健康检查脚本:监控 LVS 和 Nginx 状态
vrrp_script check_lvs_nginx {
    script "/etc/keepalived/check_service.sh"  # 自定义检查脚本
    interval 2  # 检查间隔(秒)
    weight -20  # 检查失败时,优先级降低 20
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0  # 绑定的网卡
    virtual_router_id 51
    priority 100  # 优先级高于 BACKUP
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.200/24 dev eth0 label eth0:0  # VIP
    }
    track_script {
        check_lvs_nginx  # 关联健康检查脚本
    }
}
 
(2)BACKUP 节点(192.168.1.101)配置
与 MASTER 基本一致,仅修改 router_id 和 priority
conf
 
 
global_defs {
    router_id LVS_BACKUP
}

# 健康检查脚本与 MASTER 相同
vrrp_script check_lvs_nginx {
    script "/etc/keepalived/check_service.sh"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90  # 优先级低于 MASTER
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.200/24 dev eth0 label eth0:0
    }
    track_script {
        check_lvs_nginx
    }
}
 
(3)健康检查脚本(/etc/keepalived/check_service.sh
bash
 
 
#!/bin/bash
# 检查 LVS 服务是否运行
if ! ipvsadm -Ln &> /dev/null; then
    exit 1  # LVS 故障,返回非 0 触发优先级降低
fi

# 检查 Nginx 服务是否运行
if ! ps -C nginx &> /dev/null; then
    systemctl restart nginx  # 尝试重启 Nginx
    sleep 2
    if ! ps -C nginx &> /dev/null; then
        exit 1  # 重启失败,返回非 0
    fi
fi

exit 0  # 健康状态
 
赋予执行权限:chmod +x /etc/keepalived/check_service.sh

6. 重启服务并验证

bash
 
 
# 重启 Keepalived 使配置生效
systemctl restart keepalived

# 验证 VIP 绑定(MASTER 节点应持有 VIP)
ip addr show eth0 | grep 192.168.1.200

# 验证 LVS 规则
ipvsadm -Ln  # 应显示后端 Nginx 节点

# 测试故障转移:停止 MASTER 节点的 Keepalived,检查 BACKUP 节点是否接管 VIP
systemctl stop keepalived  # 在 MASTER 执行
ip addr show eth0 | grep 192.168.1.200  # 在 BACKUP 节点检查
 

四、架构优势与注意事项

优势

  1. 高性能:LVS 工作在内核态,处理能力远超 Nginx,适合高并发场景;
  2. 高可用:Keepalived 实现 VIP 漂移,避免单点故障,故障转移时间 < 1 秒;
  3. 灵活扩展:Nginx 处理七层路由,支持复杂业务规则(如灰度发布、路径转发);
  4. 可扩展性:后端 Nginx 和应用服务器可横向扩容,应对流量增长。

注意事项

  1. 网络配置:LVS-DR 模式要求所有节点在同一局域网,且 VIP 需绑定到 Nginx 节点的回环接口;
  2. 配置一致性:MASTER 和 BACKUP 节点的 LVS 规则、Keepalived 认证信息必须完全一致;
  3. 健康检查:脚本需覆盖关键服务(LVS、Nginx),避免 “假活” 状态(如进程存在但端口不可用);
  4. ARP 抑制:Nginx 节点需配置 ARP 忽略 / 公告参数,防止 VIP 地址冲突。

总结

Keepalived + LVS + Nginx 组合兼顾了性能、灵活性和高可用性,是企业级负载均衡架构的经典方案。通过 LVS 处理四层流量分发,Nginx 实现七层精细化控制,Keepalived 保障整体可用性,可支撑百万级并发场景,适合对稳定性和性能要求极高的业务。

-------------------------------------------------------------------------------

Keepalived 是一款基于 VRRP(虚拟路由冗余协议)的高可用解决方案,主要用于实现服务器的故障自动转移,确保服务持续可用。它常与 LVS、Nginx 等配合,构建高可用集群。以下是详细的安装与配置步骤:

一、安装 Keepalived

1. 环境说明

  • 操作系统:CentOS 7/8 或 Ubuntu 20.04/22.04(以 CentOS 7 和 Ubuntu 为例)
  • 节点规划(示例):
    • MASTER 节点:192.168.1.100(主节点,优先级更高)
    • BACKUP 节点:192.168.1.101(备用节点,优先级较低)
    • 虚拟 IP(VIP):192.168.1.200(对外提供服务的统一 IP)

2. 安装步骤

(1)CentOS 系统
bash
 
 
# 安装依赖(如需编译安装)
yum install -y gcc openssl-devel libnl3-devel net-snmp-devel

# 直接通过 yum 安装(推荐)
yum install -y keepalived

# 启动并设置开机自启
systemctl start keepalived
systemctl enable keepalived
 
(2)Ubuntu 系统
bash
 
 
# 更新软件源
apt update

# 安装 keepalived
apt install -y keepalived

# 启动并设置开机自启
systemctl start keepalived
systemctl enable keepalived
 

二、核心配置文件解析

Keepalived 的主配置文件为 /etc/keepalived/keepalived.conf,主要包含 3 部分:global_defs(全局配置)、vrrp_instance(VRRP 实例配置)、virtual_server(虚拟服务器配置,可选)。

1. 基础配置示例(MASTER 节点)

conf
 
 
! Configuration File for keepalived

# 全局配置
global_defs {
    router_id LVS_MASTER  # 节点标识(唯一,如 LVS_MASTER/LVS_BACKUP)
    script_user root      # 脚本执行用户
    enable_script_security  # 启用脚本安全检查
}

# VRRP 实例配置(定义一个高可用组)
vrrp_instance VI_1 {
    state MASTER          # 节点角色(MASTER/BACKUP)
    interface eth0        # 绑定的网卡(通过 ifconfig 查看实际网卡名)
    virtual_router_id 51  # 虚拟路由 ID(0-255,同一集群需一致)
    priority 100          # 优先级(MASTER 需高于 BACKUP,如 100 vs 90)
    advert_int 1          # 心跳间隔(秒,MASTER 向 BACKUP 发送通告的频率)

    # 认证配置(同一集群需一致)
    authentication {
        auth_type PASS    # 认证方式(PASS 或 AH)
        auth_pass 1111    # 认证密码(仅前 8 位有效)
    }

    # 虚拟 IP(VIP),可配置多个
    virtual_ipaddress {
        192.168.1.200/24 dev eth0 label eth0:0  # VIP 及子网掩码
    }

    # (可选)状态切换时执行的脚本(如通知、日志记录)
    notify_master "/etc/keepalived/notify.sh master"  # 成为主节点时执行
    notify_backup "/etc/keepalived/notify.sh backup"  # 成为备用节点时执行
    notify_fault  "/etc/keepalived/notify.sh fault"   # 故障时执行
}

# (可选)虚拟服务器配置(如需结合 LVS 负载均衡)
# virtual_server 192.168.1.200 80 {
#     delay_loop 6          # 健康检查间隔(秒)
#     lb_algo rr            # 负载均衡算法(rr 轮询、wrr 加权轮询等)
#     lb_kind DR            # 转发模式(DR/NAT/TUN)
#     persistence_timeout 50  # 会话保持时间(秒)
#     protocol TCP          # 协议

#     # 后端真实服务器
#     real_server 192.168.1.102 80 {
#         weight 1          # 权重(越高优先被分配)
#         TCP_CHECK {
#             connect_port 80  # 检查端口
#             connect_timeout 3  # 连接超时(秒)
#             retry 3           # 重试次数
#             delay_before_retry 3  # 重试间隔(秒)
#         }
#     }
# }
 

2. BACKUP 节点配置(与 MASTER 对比)

仅需修改以下参数,其余配置与 MASTER 保持一致:
conf
 
 
global_defs {
    router_id LVS_BACKUP  # 节点标识改为 LVS_BACKUP
}

vrrp_instance VI_1 {
    state BACKUP          # 角色改为 BACKUP
    priority 90           # 优先级低于 MASTER(如 90)
    # 其他参数(virtual_router_id、authentication 等)必须与 MASTER 一致
}
 

三、关键配置项说明

  1. global_defs
    • router_id:节点唯一标识,用于区分不同节点。
    • script_user:执行脚本的用户(通常为 root)。
  2. vrrp_instance
    • state:角色(MASTER 或 BACKUP),但实际角色由 priority 决定(优先级高的为 MASTER)。
    • interface:必须与节点实际网卡名一致(如 eth0、ens33),可通过 ip addr 查看。
    • virtual_router_id:同一高可用集群的节点必须相同(0-255)。
    • priority:MASTER 优先级需高于 BACKUP(如 100 vs 90),故障恢复后 MASTER 会抢占 VIP(可通过 nopreempt 关闭抢占)。
    • advert_int:心跳间隔,默认 1 秒,MASTER 定期发送心跳包告知存活状态。
    • authentication:集群内节点通信的认证方式,auth_pass 两端必须一致。
    • virtual_ipaddress:虚拟 IP(VIP),客户端通过此 IP 访问服务,故障时会自动漂移到健康节点。

四、状态切换脚本(可选)

当节点角色切换时(如 MASTER 故障变为 BACKUP),可通过脚本执行通知(如发送邮件、记录日志)。示例脚本 /etc/keepalived/notify.sh
bash
 
 
#!/bin/bash
# 状态切换通知脚本

VIP=192.168.1.200
LOG_FILE=/var/log/keepalived_notify.log

# 记录日志
echo "[$(date '+%Y-%m-%d %H:%M:%S')] 状态切换为: $1, VIP: $VIP" >> $LOG_FILE

# 发送邮件通知(需安装 mailutils 或 postfix)
# echo "Keepalived 状态切换为 $1,VIP: $VIP" | mail -s "Keepalived 状态通知" admin@example.com
 
赋予脚本执行权限:
bash
 
 
chmod +x /etc/keepalived/notify.sh
 

五、防火墙与 SELinux 配置

  1. 开放 VRRP 协议(必做):VRRP 使用组播通信(224.0.0.18),需允许相关流量:
    bash
     
     
    # CentOS 7(firewalld)
    firewall-cmd --permanent --add-rich-rule='rule protocol value="vrrp" accept'
    firewall-cmd --reload
    
    # Ubuntu(ufw)
    ufw allow proto vrrp from any to any
    
     
     
  2. 关闭 SELinux(可选,避免权限问题):
    bash
     
     
    setenforce 0  # 临时关闭
    sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config  # 永久关闭(需重启)
    
     
     

六、验证与测试

1. 查看服务状态

bash
 
 
systemctl status keepalived  # 检查服务是否正常运行
 

2. 验证 VIP 分配

  • MASTER 节点应绑定 VIP:
    bash
     
     
    ip addr show eth0  # 查看是否有 192.168.1.200
    
     
     
    输出应包含:inet 192.168.1.200/24 scope global secondary eth0:0

3. 故障转移测试

  • 手动停止 MASTER 节点的 keepalived 服务:
    bash
     
     
    systemctl stop keepalived
    
     
     
  • 在 BACKUP 节点查看 VIP 是否漂移:
    bash
     
     
    ip addr show eth0  # 此时 192.168.1.200 应出现在 BACKUP 节点
    
     
     
  • 恢复 MASTER 节点服务后,VIP 会自动漂移回(默认开启抢占模式):
    bash
     
     
    systemctl start keepalived
    
     
     

七、常见问题排查

  1. VIP 未漂移:
    • 检查 virtual_router_idauthentication 是否在集群内一致。
    • 确认防火墙是否开放 VRRP 协议。
    • 查看日志:tail -f /var/log/messages(CentOS)或 tail -f /var/log/syslog(Ubuntu)。
  2. 服务启动失败:
    • 检查配置文件语法错误:keepalived -t -f /etc/keepalived/keepalived.conf
    • 确认网卡名(interface)是否正确。
  3. 抢占模式问题:
    • 若希望 MASTER 恢复后不抢占 VIP(避免业务中断),可在 vrrp_instance 中添加 nopreempt(仅对 BACKUP 节点有效)。

总结

Keepalived 通过 VRRP 协议实现 VIP 漂移,核心是配置一致的虚拟路由 ID、认证信息,以及合理的优先级。结合状态切换脚本和健康检查,可构建稳定的高可用集群。实际使用中需根据业务场景(如是否结合 LVS)调整 virtual_server 配置。

-------------------------------------------------------------------------------

Keepalived 是一款基于 VRRP(虚拟路由冗余协议)的高可用解决方案,其架构设计围绕 “高可用冗余” 和 “服务健康检查” 两大核心目标,通过模块化设计实现灵活、可靠的集群管理。以下从整体架构、核心模块、工作流程及扩展能力四个维度解析其设计逻辑。

一、整体架构概述

Keepalived 的架构采用 分层模块化设计,核心目标是实现 “虚拟 IP(VIP)漂移” 和 “服务健康监控”,确保当主节点故障时,备用节点能自动接管服务。其整体架构可概括为:“核心控制层 + 协议实现层 + 健康检查层 + 扩展接口层”
各层职责如下:
  • 核心控制层:负责全局配置解析、模块调度和状态管理;
  • 协议实现层:基于 VRRP 协议实现节点冗余和 VIP 管理;
  • 健康检查层:监控后端服务 / 节点的可用性,触发故障转移;
  • 扩展接口层:通过脚本或插件支持自定义逻辑(如通知、复杂检查)。

二、核心模块详解

Keepalived 由三个核心模块构成,各模块独立封装且通过内部接口协同工作:

1. 核心组件(Core Module)

作用:作为整个系统的 “大脑”,负责全局初始化、配置解析、模块协调和信号处理。
  • 配置解析:读取 /etc/keepalived/keepalived.conf,解析全局参数(global_defs)、VRRP 实例(vrrp_instance)、虚拟服务器(virtual_server)等配置,转化为内存数据结构;
  • 模块调度:启动并管理 VRRP 模块和健康检查模块,协调两者的状态交互(如健康检查失败时通知 VRRP 模块触发切换);
  • 信号处理:响应外部信号(如 SIGTERM 终止信号、SIGHUP 重载配置信号),执行对应操作(如重启服务、重新加载配置)。

2. VRRP 协议模块(VRRP Module)

作用:基于 VRRP 协议实现节点冗余和 VIP 漂移,是高可用的核心载体。
  • VRRP 实例管理:每个 vrrp_instance 对应一个独立的虚拟路由集群(可配置多个实例,实现多组服务冗余)。实例包含节点角色(MASTER/BACKUP)、优先级、心跳间隔、认证信息等参数;
  • 状态选举机制:
    • MASTER 节点定期(advert_int 间隔)发送 VRRP 通告报文(组播地址 224.0.0.18),告知自身存活状态;
    • BACKUP 节点若在超时时间内未收到 MASTER 报文,触发选举:优先级最高的节点成为新 MASTER,绑定 VIP 并接管服务;
  • VIP 管理:MASTER 节点通过 ip addr 命令将 VIP 绑定到指定网卡(如 eth0:0),BACKUP 节点不绑定 VIP;当角色切换时,自动添加 / 删除 VIP 绑定;
  • 抢占模式控制:支持 “抢占”(默认)和 “非抢占”(nopreempt 配置)模式。非抢占模式下,故障恢复的原 MASTER 不会抢回 VIP,避免业务中断。

3. 健康检查模块(Check Module)

作用:监控后端服务(如 Nginx、MySQL)或节点的可用性,为 VRRP 模块提供故障判断依据。
  • 检查方式:支持多种灵活的健康检查机制:
    • TCP 检查:通过建立 TCP 连接检测端口是否存活(如检查 80 端口);
    • HTTP/HTTPS 检查:发送 HTTP 请求并验证响应码(如 200 OK);
    • 脚本检查:执行自定义脚本(如 check_nginx.sh),通过脚本退出码(0 为健康,非 0 为故障)判断状态;
    • SMTP/PING 检查:针对邮件服务或节点网络连通性的专用检查;
  • 故障处理:若检查到服务故障,健康检查模块会通知 VRRP 模块:
    • 若当前节点是 MASTER,可主动降低自身优先级(weight 配置),触发 VIP 漂移;
    • 若配合 LVS,会从负载均衡列表中移除故障节点。

三、模块间交互流程

Keepalived 各模块通过 “事件驱动” 机制协同工作,典型流程如下:
  1. 初始化阶段:
    • Core 模块解析配置文件,初始化 VRRP 实例和健康检查规则;
    • VRRP 模块根据优先级选举 MASTER/BACKUP 角色,MASTER 绑定 VIP;
    • 健康检查模块启动对后端服务的监控。
  2. 正常运行阶段:
    • MASTER 节点的 VRRP 模块定期发送心跳报文;
    • 健康检查模块持续监控服务,若正常则不干预;
    • BACKUP 节点监听 MASTER 心跳,维持备用状态。
  3. 故障发生阶段:
    • 场景 1:MASTER 节点故障(如宕机):
       
      BACKUP 节点未收到心跳,触发选举,优先级最高的 BACKUP 升级为 MASTER,绑定 VIP 并接管服务。
    • 场景 2:MASTER 节点服务故障(如 Nginx 崩溃):
       
      健康检查模块检测到故障,通知 VRRP 模块;MASTER 节点主动降低优先级(或触发状态切换),BACKUP 节点检测到 MASTER 优先级低于自身,升级为新 MASTER。
  4. 故障恢复阶段:
    • 原 MASTER 节点恢复后,若为 “抢占模式”,会因优先级更高重新成为 MASTER 并夺回 VIP;
    • 若为 “非抢占模式”,原 MASTER 作为 BACKUP 运行,不干扰当前 MASTER。

四、与外部组件的集成设计

Keepalived 并非孤立运行,其架构设计预留了与其他组件的集成接口,常见场景包括:
  1. 与 LVS(Linux Virtual Server)集成:Keepalived 最初为 LVS 设计,通过 virtual_server 配置管理 LVS 负载均衡规则。健康检查模块检测到后端 Real Server 故障时,会自动从 LVS 集群中移除该节点,避免流量分配到故障节点。
  2. 与 Nginx/HAProxy 集成:通过脚本检查(如 pidof nginx)监控反向代理服务状态,当 Nginx 故障时,触发 Keepalived 状态切换,确保 VIP 漂移到正常节点的 Nginx 服务。
  3. 与云平台 / 容器集成:支持通过自定义脚本调用云平台 API(如 AWS EC2、阿里云 ECS),实现跨主机 / 跨区域的 VIP 管理(如修改路由表指向健康节点)。

五、架构优势

  1. 轻量级:C 语言开发,无依赖,资源占用低(内存通常 < 10MB);
  2. 高可靠:模块化设计降低耦合,单一模块故障不影响整体;
  3. 灵活性:支持多实例、多 VIP、自定义检查脚本,适应复杂场景;
  4. 快速切换:基于 VRRP 协议,故障转移时间通常 < 1 秒(取决于 advert_int 配置)。

总结

Keepalived 的架构以 “VRRP 协议为核心、健康检查为依据、模块化设计为支撑”,通过简洁高效的模块协作实现服务高可用。其设计既保证了基础冗余能力的稳定性,又通过扩展接口满足了复杂业务场景的需求,是中小规模高可用集群的优选方案。

-------------------------------------------------------------------------------

posted @ 2025-10-09 10:31  hanease  阅读(34)  评论(0)    收藏  举报