technology

主流 VIP 漂移方案

·11 分钟阅读·4180 字
📋 目录

主流 VIP 漂移方案

核心概念 VIP(虚拟 IP)漂移是实现高可用的核心技术,主流方案包括 Keepalived+VRRP、Heartbeat、云平台 VIP 等。

VIP(虚拟IP)漂移:多台服务器共享同一个对外统一IP,主节点故障时IP自动切换到备节点,客户端无需修改访问地址,实现服务无单点。
使用环境分为四大类:传统机房VRRP方案、K8s云原生VIP方案、公有云托管VIP方案、BGP三层路由漂移方案,覆盖裸金属、私有云、容器集群、公有云全部场景。

1. 传统机房/虚拟机通用:Keepalived(VRRP协议,行业最经典)

1.1. 底层原理

基于 VRRP 虚拟路由冗余协议(IP协议号112,组播224.0.0.18)

  1. 多台主机组成VRRP组,配置同一virtual_router_id
  2. priority优先级选举:数值越大越优先,高优先级默认MASTER持有VIP;
  3. Master每秒发送VRRP心跳报文;Backup收不到心跳则判定主故障,升级自身为Master,绑定VIP、发送免费ARP全网刷新MAC映射;
  4. 支持自定义业务健康检查(Nginx/MySQL进程、端口、HTTP接口),业务异常主动降权释放VIP。

1.2. 核心能力

  1. 一主一备、一主多备;支持抢占/非抢占模式(nopreempt避免频繁来回漂移);
  2. 可配合LVS、HAProxy、MySQL、Redis、Nginx实现四层/七层入口高可用;
  3. 切换速度:3~10秒,取决于心跳间隔与故障判定次数;
  4. 支持脚本回调,漂移前后执行启停、告警脚本。

1.3. 适用环境

自建IDC裸金属、VMware/KVM私有虚拟化、同子网内网环境。

1.4. 优缺点

✅ 优点:部署简单、无额外组件、Linux原生、免费稳定、支持TCP/UDP全协议;
❌ 缺点:

  1. 公有云VPC大多拦截VRRP组播报文,原生VRRP无法直接使用;
  2. 仅二层同网段可用,跨机房跨子网不支持;
  3. 同一时间只有一台节点持有VIP,无法多节点同时负载均衡;
  4. 容易出现“乒乓漂移”(网络抖动频繁切换)、脑裂(防火墙阻断VRRP心跳)。

1.5. 云上兼容改造方案(公有云不能用原生VRRP)

云厂商屏蔽VRRP,改用HaVip+API脚本

  1. 云平台创建托管内网虚拟IP(HaVip);
  2. Keepalived关闭VRRP,仅做业务健康检测;
  3. 检测到主故障后调用云API,将HaVip解绑主机、绑定到备机;
  4. EIP弹性公网IP绑定HaVip,公网入口跟随漂移。

2. K8s云原生集群VIP漂移方案(容器环境专用)

2.1. 方案1:kube-vip(K8s控制平面高可用首选)

2.1.1. 原理

轻量级静态Pod,专门为K8s Master控制平面提供API Server VIP,两种模式:

  1. ARP二层模式:同网段节点通过免费ARP实现VIP漂移,基于Raft分布式选举选主,替代VRRP;
  2. BGP三层模式:与机房上游BGP交换机建立邻居,多节点同时通告VIP路由,ECMP负载均衡。

2.1.2. 特点

  • 无需额外部署Keepalived/HAProxy,集群内原生运行;
  • 适配kubeadm一键部署多Master集群;
  • 切换速度1~3秒,无VRRP组播限制。

2.1.3. 适用:自建K8s多Master控制平面高可用。

2.2. 方案2:MetalLB(自建K8s暴露LoadBalancer Service标准)

裸金属/私有云K8s没有云厂商LoadBalancer,MetalLB提供集群VIP能力,两大工作模式:

2.2.1. (1)Layer2 二层ARP模式(类Keepalived)

  • 集群同一子网,通过ARP抢占VIP,同一时刻仅一个节点持有;
  • 基于K8s原生leader选举故障漂移;
  • 缺点:单节点承载流量,存在单点瓶颈。

2.2.2. (2)BGP三层路由模式(生产高性能推荐)

每个集群节点和机房物理BGP交换机建立邻居,所有节点同时向交换机通告同一VIP路由;

  1. 上游路由器ECMP多路径分发流量,多节点同时负载均衡
  2. 某节点故障,自动撤回路由,流量平滑切走;
  3. 跨子网、跨机柜无二层限制,性能远高于二层单主模式。

2.2.3. 适用:自建IDC K8s集群,对外暴露业务LoadBalancer。

2.3. 方案3:Keepalived+externalIPs(传统迁移K8s过渡方案)

宿主机部署Keepalived生成内网VIP,K8s Service配置externalIPs绑定该VIP;
流量路径:客户端VIP → 宿主机 → NodePort → Pod。
缺点:需要宿主机预装软件,容器化不纯粹,新项目优先MetalLB/kube-vip。

3. 公有云托管VIP漂移方案(阿里云/腾讯云/AWS/Azure)

公有云网络隔离VRRP,全部采用云厂商托管能力,分两类:

3.1. 内网虚拟IP:云厂商HaVip(华为云/阿里云/腾讯云)

3.1.1. 原理

平台托管虚拟内网IP,不依赖VRRP,支持两种切换触发:

  1. 手动API切换:自研监控脚本检测业务故障,调用云API将HaVip绑定至备用ECS;
  2. 配合Keepalived改造:关闭VRRP心跳,仅做健康检测,故障时自动调用HaVip切换接口。

3.1.2. 配套公网:HaVip绑定EIP弹性公网IP,公网入口跟随VIP漂移。

3.1.3. 切换耗时:5~15秒,完全由云平台网络管控,无ARP广播问题。

3.2. 全托管负载均衡(SLB/NLB/ALB,主流业务首选)

本质是云厂商底层实现自动VIP漂移,用户无感知:

  1. 四层NLB:公网固定VIP,后端挂载多可用区ECS,内置健康检查,故障后端自动下线;底层集群多台网关设备,网关故障VIP自动漂移至其他网关;
  2. 七层ALB:HTTP/HTTPS专用,SSL卸载、域名分流,底层网关集群高可用;
    ✅ 优势:无需自己维护漂移逻辑、多可用区容灾、自动弹性扩容、防DDoS;
    适用:Web、API、微服务公网入口,90%云上业务标准方案。

3.3. 弹性网卡ENI漂移方案

多台ECS预分配辅助弹性网卡,监控检测主实例故障后,调用云API将承载VIP的ENI解绑主、绑定备机;
适合数据库、中间件主备集群(MySQL主从、Redis哨兵)。

4. BGP路由通告漂移(三层高性能,大型IDC/运营商标准)

4.1. 核心原理

摒弃二层ARP/VRRP,通过BGP动态路由协议实现VIP全网可达:

  1. 多台负载均衡节点(LVS/HAProxy/MetalLB)与机房核心BGP交换机建立邻居;
  2. 所有节点同时向BGP发布同一条VIP静态路由;
  3. 交换机ECMP等价路由,流量均分所有节点;
  4. 节点故障:BGP自动撤销该节点路由,流量自动转移至剩余节点,秒级切换(<1s)

4.2. 两大落地场景

  1. 自建K8s MetalLB BGP模式:业务LoadBalancer多节点并发承载流量;
  2. 机房四层网关LVS集群:全网入口多活,无单点瓶颈,支撑百万并发;

4.3. 优势对比二层VRRP

  1. 多节点同时提供服务,无单主性能瓶颈;
  2. 不受二层同网段限制,跨机柜、跨机房均可;
  3. 故障切换极快,无ARP缓存刷新延迟;

4.4. 缺点

需要机房交换机开通BGP邻居权限,小型机房无交换机权限无法使用。

5. 四大类方案完整对比表

方案底层协议同一时间多节点承载流量切换耗时适用场景环境限制
Keepalived VRRPVRRP二层ARP否(单主)3~10s自建IDC、虚拟机、传统业务必须同子网;公有云原生不可用
kube-vip ARP二层ARP+Raft选举否(单主)1~5sK8s多Master控制平面K8s集群、同子网
MetalLB Layer2ARP+K8s选举否(单主)2~6s自建K8s小型业务集群同网段
MetalLB BGP / 机房BGP LVSBGP三层路由是(ECMP负载)<1s大规模IDC、高并发K8s交换机支持BGP邻居
云HaVip+API脚本云平台管控接口否(单主备)5~15s公有云数据库/中间件主备仅对应厂商VPC
云NLB/ALB托管LB厂商底层集群是,多网关集群<2s云上Web公网业务公有云环境

6. 生产选型推荐

  1. 传统自建机房物理机/虚拟机(非容器)
  • 小规模双机主备:Keepalived(VRRP);
  • 高并发四层网关集群:LVS+BGP多活。
  1. 自建裸金属K8s集群
  • 多Master控制平面VIP:kube-vip;
  • 业务对外暴露LoadBalancer:MetalLB BGP模式;
  1. 阿里云/腾讯云/AWS公有云
  • Web/API公网入口:直接使用NLB/ALB托管负载均衡(厂商底层自动漂移);
  • 数据库、Redis内网主备:HaVip+健康检测脚本漂移;
  1. 跨机房、超大流量、百万并发
    BGP三层路由方案,多节点同时负载均衡,无单点瓶颈。

7. 通用生产避坑要点

  1. Keepalived VRRP必须放行防火墙112协议,否则脑裂无漂移;配置nopreempt防止恢复后频繁抢占;
  2. 二层ARP类漂移方案切换后需发送免费GARP刷新全网ARP缓存,否则客户端短暂断连;
  3. 公有云严禁直接部署原生VRRP,会出现双MASTER双持VIP,网络冲突;
  4. BGP方案机房交换机需提前规划路由、分配AS号,避免路由泄露;
  5. 所有漂移方案必须配套完善业务健康检查(不只检查端口,最好HTTP业务接口探测);
  6. 数据库类有状态业务优先使用云HaVip/ENI漂移,搭配半同步复制降低切换数据丢失风险。

关联文档