Keepalived实验

Keepalived 高可用集群部署与故障切换实验
一、实验说明

本实验结合 LVS/HAProxy 与 Keepalived,实现负载均衡器的主备切换,当主节点故障时,备节点自动接管 VIP,保证服务不中断。
二、知识点讲解

VRRP 协议:Keepalived 基于 VRRP(虚拟路由冗余协议)实现高可用,将多台设备虚拟为一台,选举主节点。

核心功能:

健康检查:检测后端服务器和自身服务状态。

故障切换:主节点故障时,备节点自动升级为主节点,接管 VIP。

配置 LVS:与 LVS 深度集成,自动维护 IPVS 规则。
操作步骤

1、安装 Keepalived

复制代码
yum install -y keepalived

2、主节点(MASTER)配置 /etc/keepalived/keepalived.conf

复制代码
global_defs {
    router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24
    }
    track_script {
        check_haproxy
    }
}

vrrp_script check_haproxy {
    script "/etc/keepalived/check_haproxy.sh"
    interval 2
    weight -20
}

3、备节点(BACKUP)配置

复制代码
global_defs {
    router_id LVS_DEVEL
}

vrrp_instance VI_1 {
    state BACKUP
    interface eth0
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24
    }
    track_script {
        check_haproxy
    }
}

vrrp_script check_haproxy {
    script "/etc/keepalived/check_haproxy.sh"
    interval 2
    weight -20
}

4、创建健康检查脚本 /etc/keepalived/check_haproxy.sh

复制代码
#!/bin/bash
if [ `ps -C haproxy --no-header | wc -l` -eq 0 ]; then
    systemctl stop keepalived
fi

chmod +x /etc/keepalived/check_haproxy.sh

5、启动服务

复制代码
systemctl start keepalived
systemctl enable keepalived

6、故障切换测试

停止主节点的 HAProxy 服务,观察 VIP 是否漂移到备节点。

相关推荐
AlfredZhao1 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐3 天前
Linux内存扩容指南
linux
zylyehuo3 天前
Linux 彻底且安全地删除文件
linux
用户805533698034 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297914 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
Web3探索者5 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo5 天前
Linux系统中网线与USB网络共享冲突
linux
Sokach10157 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
AlfredZhao7 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3109 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql