如何利用 Keepalived 多实例配置实现双主架构的流量负载均衡教程

胖杰大大_5317

胖杰大大_5317

2026-05-11

701人浏览

原创

keepalived多实例双主架构是通过两个独立vrrp_instance实现双活,每台节点在不同virtual_router_id下互为master/backup;需确保router_id唯一、advert_int一致、防火墙放行ip协议112、关闭vrrp_strict,并配合健康检查与lvs/nginx完成流量分发。

如何利用 keepalived 多实例配置实现双主架构的流量负载均衡教程

Keepalived 多实例双主架构不是“两台都当主”,而是通过配置两个独立的 vrrp_instance,让每台服务器在不同虚拟路由器组中分别担任 MASTER,从而同时对外提供服务、分担流量。关键在于:两个 VIP 分属不同 virtual_router_id,且在两台节点上互为 MASTER/BACKUP 关系,形成“你主我备、我主你备”的对称结构。

双主架构的核心设计逻辑

传统主备只用一个 VIP 和一个 vrrp_instance,资源利用率低;双主则定义两个 VIP(如 192.168.1.100 和 192.168.1.101),对应两个 virtual_router_id(如 51 和 52)。每台服务器在 instance VI_1 中优先级高,在 VI_2 中优先级低——这样两台机器就能同时绑定一个 VIP,实现真正的双活流量承接。

  • 节点 A:VI_1(VIP1)为 MASTER(priority 150),VI_2(VIP2)为 BACKUP(priority 100)
  • 节点 B:VI_1(VIP1)为 BACKUP(priority 100),VI_2(VIP2)为 MASTER(priority 150)
  • 客户端可轮询访问两个 VIP,或由前端 DNS/SLB 做分流,也可配合 Nginx 做七层聚合
  • 任意节点宕机,另一个节点自动接管两个 VIP,保障整体可用性

配置要点与避坑细节

多实例双主成败取决于参数隔离和网络连通性。以下为必须校验的硬性要求:

  • virtual_router_id 必须不同:VI_1 设为 51,VI_2 设为 52;相同 ID 会导致 VRRP 组冲突,出现脑裂或选举异常
  • advert_int 保持一致:两台机器上所有实例的心跳间隔(如 1 秒)需完全相同,否则 Backup 可能误判 Master 失联
  • 防火墙放行 VRRP 协议:UDP 端口不重要,关键是允许 IP 协议号 112(非端口!),命令示例:iptables -A INPUT -p 112 -j ACCEPT
  • 关闭 vrrp_strict 模式:该模式强制要求单播、全协议栈匹配,会阻断双主场景下的非对称配置,配置中注释掉或设为 vrrp_strict off
  • 两台节点的 router_id 必须唯一,如 lvs-node-a 和 lvs-node-b,否则日志报错并拒绝启动

典型 keepalived.conf 多实例配置(节点 A 示例)

以下为节点 A 的完整核心配置片段(节点 B 仅需交换 priority 和 state 值):

global_defs {
    router_id lvs-node-a
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 51
    priority 150
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.100/24 dev eth0 label eth0:1
    }
}

vrrp_instance VI_2 {
    state BACKUP
    interface eth0
    virtual_router_id 52
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 2222
    }
    virtual_ipaddress {
        192.168.1.101/24 dev eth0 label eth0:2
    }
}

注意:label 参数用于区分同一网卡上的多个别名接口,避免 ifconfig 中地址混叠;两个实例使用不同 auth_pass 是安全建议,非强制,但推荐分离。

健康检查与流量分发协同

双主本身只解决 VIP 漂移问题,要真正实现负载均衡,需叠加 LVS 或 Nginx 层:

  • 若走 LVS-DR 模式:在 keepalived.conf 中添加 virtual_server 块,绑定到某个 VIP(如 192.168.1.100),后端挂真实服务器;另一 VIP 可绑定另一组 RS 或相同组(视业务隔离需求)
  • 若走 Nginx 反向代理:每台节点运行 Nginx,分别监听各自 MASTER 的 VIP(或监听 0.0.0.0,靠路由策略区分),upstream 配置统一后端池,实现逻辑集中、物理分散
  • 务必配置 track_script 检查本地 Nginx/LVS 进程,例如检测 nginx -t && systemctl is-active --quiet nginx,失败则降低本实例 priority,触发 VIP 切出

双主不是配置堆砌,而是对 VRRP 协议角色关系的精准编排。只要 virtual_router_id、priority、state 三者形成镜像对称,再配好网络与检查机制,就能稳稳跑起来。

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
剧云AI短剧创作教程合集
剧云AI短剧创作教程合集

本专题聚焦剧云AI短剧创作,讲解从短剧灵感、梗概、全局大纲到分集、分场和正文的完整流程及节奏设计方法。

2026.10.14

0

15

剧云AI剧本创作零基础入门
剧云AI剧本创作零基础入门

本专题系统讲解剧云AI剧本创作流程,涵盖灵感、梗概、大纲、分场与正文生成,帮助新手快速完成首个中文剧本项目。

2026.10.14

0

14

VibeKnow文档转视频操作指南
VibeKnow文档转视频操作指南

本专题讲解VibeKnow上传Word、TXT、Markdown等材料生成视频的方法,覆盖内容解析、脚本组织、画面生成与成片检查。

2026.10.14

0

15

VibeKnow知识视频制作与导出详解
VibeKnow知识视频制作与导出详解

本专题整理VibeKnow从注册、素材上传、AI生成到预览导出的完整操作,帮助新手快速制作第一条知识讲解视频。

2026.10.14

0

13

二狗PPT大纲编辑实操指南
二狗PPT大纲编辑实操指南

本专题聚焦二狗PPT结构化大纲的生成和修改,讲解标题、正文、目录、页数与页面顺序的调整方法,提升汇报逻辑和内容完整性。

2026.10.14

0

15

二狗PPT文档转PPT全教程
二狗PPT文档转PPT全教程

本专题讲解二狗PPT解析Word、PDF、Excel和PPT资料的方法,涵盖文件上传、内容提取、大纲整理、异常处理与转换后校对。

2026.10.14

0

13

讯飞绘文全功能使用教程
讯飞绘文全功能使用教程

本专题系统整理讯飞绘文官网入口、注册登录、工作台及内容创作流程,帮助用户熟悉常用功能,快速完成首篇图文内容。

2026.10.14

0

14

讯飞绘文AI写作与文案生成合集
讯飞绘文AI写作与文案生成合集

本专题聚焦讯飞绘文AI写作、提纲生成、文章改写和文案润色,覆盖从主题输入到成稿优化的关键操作与实用技巧。

2026.10.14

0

14

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

2026.10.10

100

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.7万人学习