Keepalived 高可用 — VRRP 协议、VIP 漂移、脑裂处理
概述
Day36 系统讲解 Keepalived 基于 VRRP 协议的高可用方案,涵盖 VIP 漂移原理、Master/Backup 角色与优先级、抢占式 vs 非抢占式配置、健康检查脚本、脑裂问题根因与处理、以及 DNS 轮询作为轻量级负载均衡方案。
核心内容
VRRP 协议(虚拟路由冗余协议)
- 多台服务器组成虚拟路由器组,共享一个虚拟 IP(VIP)
- Master 定时发送 VRRP 通告(多播/广播)
- Backup 收不到通告则竞选新 Master
- 要求:所有机器必须在同一个 LAN 内
Keepalived 配置核心
- 配置文件:
/etc/keepalived/keepalived.conf - 三部分:
global_defs(全局)、vrrp_instance(VRRP 实例)、virtual_ipaddress(VIP列表) - 优先级(
priority):值越大越优先成为 Master - 抢占式(默认):高优先级恢复后抢回 VIP
- 非抢占式(
nopreempt):生产推荐,避免频繁切换
健康检查
- 脚本方式:
vrrp_script定义检测逻辑 - 检测失败则降低优先级,触发 VIP 漂移
脑裂问题
- 原因:心跳线断开,两台都认为自己是 Master
- 影响:网络混乱,请求混乱
- 处理:冗余心跳线 + 第三方仲裁(
ping网关/对端)+ 防火墙规则
DNS 轮询
- 一个域名解析到多个 IP,客户端随机选一个
- 缺点:不感知服务健康,DNS 缓存延迟切换
关联
- 前驱:LVS 模式(LVS+Keepalived 典型组合)
- 后续:HTTP 协议详解
- 相关概念:VIP、VRRP、Haproxy+LVS+Keepalived