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 缓存延迟切换

关联