跳转至

lvs加keepalive部署

LVS 和 Keepalived 联合部署的完整步骤,手把手教你从 0 到 1 搭建一个高可用的四层负载均衡集群,适用于 CentOS 或 Ubuntu 等常见 Linux 系统。


🧭 一、架构假设

角色 主机 IP 说明
MASTER 192.168.1.10 Keepalived + LVS 主节点
BACKUP 192.168.1.11 Keepalived + LVS 备节点
RealServer1 192.168.1.101 后端服务器 1
RealServer2 192.168.1.102 后端服务器 2
VIP(虚拟 IP) 192.168.1.100 提供访问入口

🧰 二、安装 LVS 和 Keepalived

在 MASTER 和 BACKUP 上都执行:

CentOS:

sudo yum install ipvsadm keepalived -y

Ubuntu:

sudo apt update
sudo apt install ipvsadm keepalived -y

🛠️ 三、配置 Keepalived(含 LVS 规则)

主节点(192.168.1.10)配置 /etc/keepalived/keepalived.conf

global_defs {
    router_id LVS_MASTER
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0                      # 改成你的网卡名
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1234
    }
    virtual_ipaddress {
        192.168.1.100                   # VIP
    }
}

virtual_server 192.168.1.100 80 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    persistence_timeout 60
    protocol TCP

    real_server 192.168.1.101 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }

    real_server 192.168.1.102 80 {
        weight 1
        TCP_CHECK {
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    }
}

备节点(192.168.1.11)配置类似,改动如下:

global_defs {
    router_id LVS_BACKUP
}

vrrp_instance VI_1 {
    state BACKUP
    priority 90
    # 其余相同
}

🧱 四、配置 Real Server(后端)支持 LVS-DR 模式

192.168.1.101192.168.1.102 上都执行:

# 绑定 VIP 到 lo 口(注意掩码必须是 /32)
sudo ip addr add 192.168.1.100/32 dev lo
sudo ip link set lo up

# 禁止 lo 回应 ARP,防止冲突
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

为使其永久生效,建议写入 /etc/sysctl.conf

net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

并执行:

sysctl -p

🚀 五、启动并验证

在主备节点启动 Keepalived:

sudo systemctl start keepalived
sudo systemctl enable keepalived

检查 VIP 是否绑定成功(主节点):

ip addr | grep 192.168.1.100

应看到 VIP 绑定成功。

检查 LVS 转发规则:

ipvsadm -Ln

应显示真实服务器 192.168.1.101 和 192.168.1.102 被加入负载池。

测试 VIP:

在另一台机器(客户端)访问:

curl http://192.168.1.100

应能访问到后端返回的网页(两个 Real Server 可设置不同内容做区分)。


🔄 六、模拟故障切换

停止主节点的 Keepalived:

sudo systemctl stop keepalived

然后在备节点运行:

ip addr | grep 192.168.1.100

如果 VIP 已漂移到备机,说明高可用切换生效。


✅ 总结

步骤 内容
1 安装 LVS + Keepalived
2 主备配置 VRRP + LVS 服务规则
3 后端配置 VIP 绑定和禁止 ARP
4 启动服务,测试访问与切换