keepalived高可用与负载均衡笔记

一、核心概念

  • Keepalived :基于 VRRP 协议 实现高可用(HA) ,同时支持 4 层负载均衡(LVS)。
  • 高可用:解决单点故障,主节点挂掉自动切换到备节点。
  • 负载均衡:将请求分发到多台后端服务器,提升并发与性能。
  • VRRP :虚拟路由冗余协议,一组设备对外提供 VIP(虚拟 IP)

二、核心角色

  1. Master 主节点
    • 持有 VIP,对外提供服务
    • 发送 VRRP 广播报文
  2. Backup 备节点
    • 监听 Master 状态
    • Master 宕机后自动抢占为 Master
  3. VIP 虚拟 IP
    • 对外统一入口,与业务 IP 无关
  4. LVS
    • Linux 内核实现的 4 层负载均衡,Keepalived 直接管理

三、工作原理(高可用)

  1. 主备配置相同 VRRP 组
  2. Master 周期发送通告
  3. Backup 收不到报文(默认 3*advert_int)认为 Master 故障
  4. Backup 根据 优先级(priority) 选举新 Master
  5. 新 Master 绑定 VIP,发送免费 ARP,刷新网关 / 交换机 MAC 表
  6. 原 Master 恢复后可配置抢占 / 非抢占模式

四、Keepalived 三大模块

  1. VRRP 模块:实现高可用
  2. Health-check 健康检查:检测后端服务存活
  3. LVS 模块:实现 4 层负载均衡

五、典型架构

1)纯高可用(常用)

  • Nginx + Keepalived
  • Keepalived 只做 VIP 漂移,Nginx 做 7 层负载均衡

2)高可用 + 4 层负载均衡

  • Keepalived(LVS)+ 后端 RS(Real Server)
  • 直接用 LVS 做转发,性能更高

六、关键配置要点

1. 全局配置

plaintext

复制代码
global_defs {
  router_id LVS_01  # 本节点标识,唯一
}

2. VRRP 实例

plaintext

复制代码
vrrp_instance VI_1 {
  state MASTER|BACKUP
  interface eth0        # 网卡
  virtual_router_id 51  # 组ID,同组一致
  priority 150          # 优先级,主>备
  advert_int 1          # 通告间隔(s)
  authentication {
    auth_type PASS
    auth_pass 1111
  }
  virtual_ipaddress {
    192.168.1.100/24    # VIP
  }
}

3. 负载均衡 LVS 配置

plaintext

复制代码
virtual_server 192.168.1.100 80 {
  delay_loop 6          # 健康检查周期
  lb_algo rr|wrr|lc|wlc  # 调度算法
  lb_kind DR|NAT|TUN     # 转发模式
  protocol TCP

  real_server 192.168.1.11 80 {
    weight 1
    TCP_CHECK {
      connect_timeout 3
    }
  }
  real_server 192.168.1.12 80 {
    weight 1
    TCP_CHECK {
      connect_timeout 3
    }
  }
}

七、LVS 三种转发模式

  1. NAT
    • 进出都经过 LVS
    • 配置简单,LVS 成为瓶颈
  2. DR(Direct Route,生产最常用)
    • 请求进 LVS,响应直接回客户端
    • 性能最高,同一 VLAN
  3. TUN
    • IP 隧道,跨网段,复杂

八、负载均衡调度算法

  • rr:轮询
  • wrr:加权轮询
  • lc:最少连接
  • wlc:加权最少连接(默认)

九、健康检查方式

  • TCP_CHECK:端口探测
  • HTTP_GET|SSL_GET:URL 探测
  • MISC_CHECK:自定义脚本检查

十、生产常用场景

  1. Nginx 高可用
    • 两台 Nginx + Keepalived
    • 挂 Nginx 或挂机器都能自动切换
  2. LVS + Keepalived
    • 高并发网关入口
  3. MySQL 高可用
    • 配合 MGR / 主从 + 脚本判断主从

十一、常用命令

bash

运行

复制代码
systemctl start|stop|restart keepalived
systemctl enable keepalived

# 查看VIP
ip addr
# 查看VRRP状态
cat /var/log/messages | grep VRRP
# 查看LVS
ipvsadm -Ln

十二、常见问题

  1. VIP 不漂移
    • 防火墙 /iptables 未放 VRRP(协议号 112)
    • virtual_router_id 不一致
    • 优先级相同、网卡名错误
  2. 脑裂
    • 主备之间网络互通异常,各自成为 Master
    • 解决方案:绑定链路、增加仲裁、脚本互杀
  3. 切换后访问不通
    • 未发送免费 ARP,交换机 MAC 表未更新
    • 开启 garp_master_delay 等参数
相关推荐
Lonely 净土1 小时前
Linux 运维文件写入操作
linux·运维·服务器·文件管理
飞英思特无线充电2 小时前
严苛场景巡检机器人的无线补能设计:点位、BMS、认证与运维边界
运维·机器人
Jimmy_jimi2 小时前
利用nginx代理完成url重定位
运维·nginx
liuyicenysabel3 小时前
多服务上线日记三:
运维·服务器·笔记·学习
CHENGQUAN_kenan3 小时前
佛山亚马逊卖家出口退税合规指南|9610免税、一般贸易退税、无票采购、申报误区全覆盖
大数据·经验分享·笔记·百度
一只鹿鹿鹿4 小时前
大数据中心安全系统解决方案(Word文件)
大数据·运维·物联网·安全·政务
一只小小的芙厨4 小时前
基础数论总结
笔记·学习·算法
领创工作室7 小时前
GitHub Workflows 全面解析:从核心概念到开源实现
运维·github
@Mike@7 小时前
09-数据库学习笔记(数据库索引与过滤器)
数据库·笔记
吕海洋7 小时前
目前可用的docker源2026.08
运维·docker·容器