VRRPD 配置逐行解析(含高级功能)
vrrp_instance VI_1 { # VRRP实例定义,VI_1是实例名
# 可以定义多个实例实现双主模式
state MASTER # 【角色】初始状态为MASTER
# 可选:MASTER(主) / BACKUP(备)
# 注意:非抢占模式必须都用BACKUP
interface eth0 # 【主网卡】绑定到eth0
# VIP默认会配置在这个网卡上
# 用ip addr查看实际网卡名
virtual_router_id 151 # 【VRID】虚拟路由ID(1-255)
# 同一个VRRP组内必须一致
# 这个ID在整个广播域内唯一,不能和其他组冲突
# 这里用的是151,不是常见的51
priority 100 # 【优先级】范围1-255
# 越高越容易成为MASTER
# 主节点要比备节点高(建议差值10以上)
advert_int 1 # 【通告间隔】单位秒
# MASTER每隔1秒发送VRRP广播
# 备节点连续3个间隔收不到就认为MASTER挂了
track_interface { # 【接口跟踪】监控网卡状态
eth0 # 监控eth0,如果eth0 down掉
eth1 # 监控eth1,如果eth1 down掉
} # 任何被监控的网卡down掉
# 优先级会自动降低(默认减2)
# 可以配合weight自定义减值
authentication { # 【认证】同一组必须完全一致
auth_type PASS # 认证类型:PASS(简单密码)
auth_pass qwaszx # 密码,最多8位
}
virtual_ipaddress { # 【虚拟IP列表】可配置多个VIP
192.168.200.16 # 第一个VIP,默认绑到interface指定的网卡(eth0)
192.168.200.17 dev eth1 # 第二个VIP,指定绑到eth1
192.168.200.18 dev eth2 # 第三个VIP,指定绑到eth2
} # 不指定dev就用interface的网卡
nopreempt # 【非抢占模式】开启后不会主动抢回MASTER
# 即使本机优先级更高,也不抢占
# 只有当当前MASTER挂了才接管
# 注意:开启nopreempt时state必须设为BACKUP
preempt_delay 300 # 【抢占延迟】单位秒
# 如果开启了抢占(没配nopreempt)
# 成为MASTER后延迟300秒再真正接管
# 给网络设备稳定时间,防止频繁切换
# 这里300秒(5分钟)有点长,通常用30-60秒
notify_master "/etc/keepalived/master.sh" # 【通知脚本】成为MASTER时执行
notify_backup "/etc/keepalived/backup.sh" # 【通知脚本】成为BACKUP时执行
notify_fault "/etc/keepalived/fault.sh" # 【通知脚本】进入FAULT状态时执行
# 可以发邮件、写日志、告警等
}
核心配置项速查表
| 配置项 | 作用 | 生产建议 | 说明 |
|---|---|---|---|
| router_id | 机器标识 | 必改 | 改成主机名,主备不同 |
| vrrp_skip_check_adv_addr | 跳过地址检查 | 保留 | 提高兼容性 |
| vrrp_strict | 严格模式 | 注释掉 | 不注释VIP配不上 |
| vrrp_garp_interval | 免费ARP间隔 | 保持0 | 加快切换收敛 |
| 邮件相关 | 邮件告警 | 注释掉 | 用监控系统替代 |
现代生产环境最佳实践
大多数公司现在都用Zabbix、Prometheus等监控系统,不用Keepalived自带的邮件功能。所以最常用的配置就是:
nginx复制下载
global_defs {
router_id lb01 # 改成实际主机名
vrrp_skip_check_adv_addr # 保留
# vrrp_strict # 注释掉
vrrp_garp_interval 0 # 保持默认
vrrp_gna_interval 0 # 保持默认
# 邮件配置全部注释掉或删掉
}
简洁、高效、够用。
发表回复