当前位置: 首页 > news >正文

Keepalived总结

Keepalived总结

一、keepalived编译安装(Ubuntu版)

下载编译环境配置

image

 获取软件:

image

 

image

 配置文件

image

 

编译安装

image

 

使用默认的服务启动文件

image

 

定制专属的配置文件

image

 启动服务

image

 

image

 二、keepalived配置文件总结

keepalived主配置文件通常是:/etc/keepalived/keepalived.conf

主要功能是:VRRP(做高可用漂移VIP)、LVS(做四层负载均衡和健康检查)

1、global_defs:全局配置

常用格式:

global_defs {
router_id LVS_01
}

说明:router_id:当前节点标识,建议主备不同

 

2、vrrp_instance:VIP 高可用核心配置

常用格式:

vrrp_instance VI_1 {
state MASTER
interface ens33
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.13/24
}
}

关键参数:

  • state:MASTER 或 BACKUP
  • interface:绑定 VIP 的网卡
  • virtual_router_id:同一组主备必须一致
  • priority:优先级,值大者优先成为主
  • advert_int:VRRP 通告间隔,默认常见为 1
  • authentication:主备认证配置,主备必须一致
  • virtual_ipaddress:漂移的 VIP 地址

常见规则:

  • 主备的 virtual_router_id、auth_pass、VIP 必须一致
  • 主节点 priority 高于备节点
  • interface 必须写实际业务网卡

3、vrrp_script:健康检查脚本

常用格式:

vrrp_script chk_nginx {
script "/usr/bin/killall -0 nginx"
interval 2
weight -20
}

通常配合track_script 使用:

vrrp_instance VI_1 {
...
track_script {
chk_nginx
}
}

说明:

  • script:检查命令
  • interval:每几秒检查一次
  • weight:失败后降低优先级

用途:

  • 本机服务挂了,自动让 VIP 漂移到备机

4、virtual_server:LVS 虚拟服务配置

格式示例:

virtual_server 10.0.0.13 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP

real_server 192.168.8.15 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}

real_server 192.168.8.17 80 {
weight 1
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

关键参数:

  • virtual_server VIP PORT:定义对外服务
  • delay_loop:健康检查周期
  • lb_algo:调度算法
    • rr:轮询
    • wrr:加权轮询
    • lc:最少连接
    • wlc:加权最少连接
  • lb_kind:转发模式
    • NAT
    • DR
    • TUN
  • persistence_timeout:会话保持时间
  • protocol:TCP 或 UDP

 

5、 real_server:后端真实服务器

格式示例:

real_server 192.168.8.15 80 {
weight 1
TCP_CHECK {
connect_timeout 3
}
}

常用项:

  • weight:权重
  • TCP_CHECK:四层端口检查
  • HTTP_GET:七层 HTTP 检查

 

HTTP检查示例:

real_server 192.168.8.15 80 {
weight 1
HTTP_GET {
url {
path /
status_code 200
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}

 

三、keepalived和nginx高可用案例实战

1、实施准备

准备5台虚拟机,其中3台Ubuntu24(IP:10.0.0.22 10.0.0.23 10.0.0.25)2台Rocky10(IP:10.0.0.26 10.0.0.27)

2、方案定义

10.0.0.26:lb1,Rocky,运行 Nginx + Keepalived

10.0.0.27:lb2,Rocky,运行 Nginx + Keepalived

10.0.0.22:web1,Ubuntu,运行 Nginx

10.0.0.23:web2,Ubuntu,运行 Nginx

10.0.0.25:web3,Ubuntu,运行 Nginx

VIP:10.0.0.20,由 Keepalived 在 10.0.0.26 和 10.0.0.27 之间漂移

3、访问路径

客户端 -> 10.0.0.20(VIP) -> Nginx负载均衡(.26/.27) -> 3台Ubuntu Nginx后端

4、给三台Ubuntu后端服务器安装nginx

image

 

5、把三台Ubuntu后端默认站点修改为简单的测试页,其余两台只需要把里面的IP地址改成本地的就行了

image

配置含义:

server {}:定义一个虚拟主机

listen 80;:监听 HTTP 80 端口

server_name _;:匹配任意 Host 头

location / {}:匹配所有请求路径

default_type text/plain;:返回纯文本,便于观察结果

return 200 "...";:直接返回内容,不依赖静态文件,排障最简单

 

6、检查并重载

image

 

7、给两台前端Rocky安装nginx和keepalived

image

 

8、做Nginx负载均衡配置,两台一样

image

 配置解析:

upstream web_backend {}:定义一个后端服务器池

server 10.0.0.22:80 ...:把 10.0.0.22 加入后端池

max_fails=3:在 fail_timeout 时间窗内,失败 3 次就临时认为该节点异常

fail_timeout=10s:失败统计窗口和临时摘除时间

listen 80;:Rocky 上的 Nginx 对外监听 80

proxy_pass http://web_backend;:把请求转发到上面定义的后端池

proxy_set_header Host $host;:把客户端原始 Host 头带给后端

proxy_set_header X-Real-IP $remote_addr;:把客户端真实 IP 传给后端

proxy_set_header X-Forwarded-For ...:记录代理链路中的客户端 IP

proxy_set_header X-Forwarded-Proto $scheme;:告诉后端原始协议是 http 还是 https

proxy_connect_timeout 3s;:连接后端超时时间

proxy_read_timeout 30s;:读取后端响应超时时间

proxy_next_upstream ...:当前后端出错时,自动切下一个后端

9、报错解析

这种报错原因是自己配置的server块跟原配置的server块冲突了,解决方法是注释掉原配置文件/etc/nginx/nginx.conf里面的server块

image

 

image

 注释掉后重新加载即可

image

 

10、写一个监控nginx健康脚本(两台都写)

image

 脚本解析:

systemctl is-active --quiet nginx:检查 Nginx 服务是否在运行

ss -lnt | grep -q ':80 ':检查本机是否真的在监听 80 端口

任一检查失败就返回非 0,Keepalived 会降低优先级,触发切换

 

11、Keepalived 主节点配置

image

 配置解析:

global_defs {}:Keepalived 全局配置

router_id LB1:当前节点标识,只是本节点名字,主备不要重复

enable_script_security:启用脚本安全限制

script_user root:指定脚本运行用户

vrrp_script chk_nginx {}:定义健康检查项

interval 2:每 2 秒检查一次

timeout 2:检查命令超时 2 秒

fall 2:连续失败 2 次才算真正失败

rise 1:恢复 1 次就认为正常

weight -30:检查失败后优先级减 30

vrrp_instance VI_WEB {}:定义一个 VRRP 实例,也就是一组 VIP 漂移逻辑

state MASTER:此节点初始角色是主

interface ens160:VIP 绑定的网卡

virtual_router_id 51:VRRP 组 ID,同一组主备必须一致

priority 120:优先级,值越大越容易成为主

advert_int 1:每 1 秒发一次通告

unicast_src_ip 10.0.0.26:本机用于发送 VRRP 报文的源地址

unicast_peer { 10.0.0.27 }:对端 Keepalived 节点

authentication {}:主备之间的认证信息,主备必须完全一致

auth_type PASS:密码认证

auth_pass 12345678:认证密码

virtual_ipaddress { 10.0.0.20/24 dev ens160 }:要漂移的 VIP

track_script { chk_nginx }:把前面的 Nginx 健康检查绑定进来

这里 priority 120 配合 weight -30 的效果是:

  • 正常时主节点优先级是 120
  • 如果主节点 Nginx 挂了,优先级降到 90
  • 备节点如果是 100,就会接管 VIP

 

12、Keepalived 备节点配置

image

 

和主节点相比,真正不同的只有这些:

  • router_id LB2:备机自己的节点标识
  • state BACKUP:初始角色是备
  • priority 100:优先级低于主机
  • unicast_src_ip 10.0.0.27:改成备机本机地址
  • unicast_peer { 10.0.0.26 }:对端改成主机地址

 

13、验证

先启动后端 3 台 Ubuntu 的 Nginx。
再启动两台 Rocky 的 Nginx。
最后启动两台 Rocky 的 Keepalived。

image

 查看主节点是否有VIP

image

 测试访问:

image

 制造故障,把主节点的keepalived停掉,VIP漂移到备节点上

image

 

image

 

 

 

http://www.jsqmd.com/news/923788/

相关文章:

  • PingFangSC字体包:企业级中文排版解决方案的完整指南
  • AI架构师面试题库 - 完整汇总文档
  • OBS StreamFX完整指南:免费插件打造电影级直播画面
  • AT_abc453_f 解题报告
  • 靠谱的小程序模板公司 - GrowthUME
  • 一周打造全功能复古机器人:回收零件集成与机电系统快速开发实战
  • 如何让微信对话成为永恒记忆:三步骤实现聊天记录永久保存
  • 5分钟掌握ChanlunX缠论插件:告别手工画图,实现自动化技术分析
  • Agent 开发本质上就是高级点的 CRUD
  • Honey Select 2终极增强指南:一键解锁完整汉化与去码体验
  • 基于Arduino的35mm幻灯片自动化数字化系统:从改造投影仪到批量处理
  • 2026 广州 GEO 优化服务商实力排行:全意图 GEO 标杆及五强机构全面解析 - GEO优化
  • 汕头GEO优化靠谱方案推荐 - 舒雯文化
  • 微信聊天记录丢失?这款免费工具帮你找回所有珍贵对话
  • 释放AMD显卡潜能:Radeon Software Slimmer让你的驱动更精简高效
  • 2026年昆山口碑好的新房装修公司,究竟哪家值得托付? - GrowthUME
  • 基于ESP32与DCF77的自动鸡舍门控制系统:从硬件选型到软件架构的完整实现
  • 如何用Layerdivider在5分钟内将单张插画转换为专业PSD分层文件
  • 力扣HOT100(45) 二叉树的直径
  • 别再为OnlyOffice离线安装头疼了!这份CentOS 7保姆级配置清单请收好
  • 基于内存补丁技术的Windows即时通讯软件消息保留解决方案深度解析
  • 酱料代加工选购指南:如何找到高性价比靠谱厂家 - 资讯纵览
  • 鸣潮自动化工具终极指南:如何用ok-ww实现后台全自动战斗
  • APKMirror:安卓应用安全下载的终极免费解决方案
  • Gemini多模态推理引擎权限提升漏洞:从普通用户到system root的4跳提权路径(含PoC视频+调试日志)
  • 终极百度网盘加速指南:免费解锁50倍下载速度的完整解决方案
  • 主题建模您的个人数据
  • 甄选:推荐上海优质的高层建筑柱加固施工队 - 品牌推广大师
  • 基于Arduino的自动发牌机:从传感器到伺服电机的机电一体化实践
  • 3个简单步骤修复Zotero Style插件高能进度条显示问题终极指南