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 等参数
相关推荐
用户0328472220705 小时前
如何搭建本地yum源(上)
运维
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
闪闪发亮的小星星3 天前
高斯光以及高斯光公式解释
笔记
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造
cqbzcsq3 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息