一、Keepalived 简介
Keepalived 是一个基于 VRRP 协议的高可用性解决方案,主要用于实现服务故障转移和负载均衡。它能够检测服务器状态并在主服务器故障时自动将虚拟IP转移到备份服务器,确保服务持续可用。
二、安装 Keepalived
1. 在 OpenEuler/RHEL 系统安装
# 使用 yum 安装 keepalived
yum install -y keepalived
# 启用并启动服务
systemctl enable keepalived
systemctl start keepalived
# 检查安装状态
systemctl status keepalived
2. 在 Ubuntu/Debian 系统安装
# 使用 apt 安装 keepalived
apt-get update
apt-get install -y keepalived
# 启用并启动服务
systemctl enable keepalived
systemctl start keepalived
三、Keepalived 配置详解
1. 主服务器配置 (Master)
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL # 路由器标识,集群内唯一
notification_email {
admin@example.com # 通知邮箱(可选)
}
notification_email_from keepalived@example.com
smtp_server 127.0.0.1 # SMTP服务器地址
smtp_connect_timeout 30 # SMTP连接超时时间
}
# VRRP实例配置
vrrp_instance VI_1 {
state MASTER # 初始状态为MASTER
interface ens32 # 网卡名称,根据实际修改(ifconfig查看)
virtual_router_id 51 # 虚拟路由ID,主备必须相同
priority 100 # 优先级(0-255),MASTER应高于BACKUP
advert_int 1 # 通告间隔(秒)
# 认证配置
authentication {
auth_type PASS # 认证类型
auth_pass 1111 # 认证密码,主备必须一致
}
# 虚拟IP地址配置
virtual_ipaddress {
192.168.3.100/24 # 虚拟IP地址,客户端访问的IP
}
}
2. 备份服务器配置 (Backup)
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL_BACKUP # 路由器标识,与主服务器不同
}
vrrp_instance VI_1 {
state BACKUP # 初始状态为BACKUP
interface ens32 # 网卡名称,与主服务器一致
virtual_router_id 51 # 必须与主服务器相同
priority 90 # 优先级低于MASTER
advert_int 1 # 通告间隔与主服务器一致
authentication {
auth_type PASS
auth_pass 1111 # 密码与主服务器一致
}
virtual_ipaddress {
192.168.3.100/24 # 相同的虚拟IP
}
}