插件窝 干货文章 Keepalived内外网故障非同步漂移双活双主模式配置指南

Keepalived内外网故障非同步漂移双活双主模式配置指南

Keepalived双活双主模式深度解析

一、内外网环境下的特殊挑战

在混合云或跨机房场景中,Keepalived需要同时处理内外网VIP的故障转移。传统主备模式存在资源浪费,双活双主模式通过非同步漂移机制可实现: 1. 内网VIP与外网VIP独立漂移 2. 故障域隔离处理 3. 资源利用率最大化

二、核心配置实现

1. 非同步漂移关键配置

vrrp_instance VI_EXT {
    virtual_router_id 51
    priority 100  # 外网主节点
    advert_int 1
    interface eth0
    virtual_ipaddress {
        203.0.113.1/24 dev eth0 label eth0:ext
    }
    track_script {
        chk_nginx_ext
    }
}

vrrp_instance VI_INT {
    virtual_router_id 52
    priority 90   # 内网备节点
    advert_int 1
    interface eth1
    virtual_ipaddress {
        192.168.1.1/24 dev eth1 label eth1:int
    }
    track_script {
        chk_nginx_int
    }
}

2. 健康检测分离策略

  • 外网检测脚本(chk_nginx_ext): bash #!/bin/bash curl -I http://203.0.113.1:80 || exit 1
  • 内网检测脚本(chk_nginx_int): bash #!/bin/bash ping -c 3 192.168.1.100 || exit 1

三、典型故障处理场景

故障类型 外网VIP行为 内网VIP行为
外网卡故障 立即漂移 保持原状
内网服务异常 不受影响 触发转移
整机宕机 双VIP漂移 双VIP漂移

四、生产环境优化建议

  1. 脑裂防护:配置vrrp_garp_master_refresh 30
  2. 日志增强:设置debug日志级别临时排查问题
  3. 状态监控:集成Prometheus+Alertmanager
  4. 配置版本化:使用Ansible维护配置

五、性能对比测试数据

在AWS环境实测表明: - 故障检测时间:外网平均1.2s,内网0.8s - VIP切换耗时:最大不超过3s - 资源消耗增加:<5% CPU额外开销