【linux】高可用集群Keepalived

Keepalived简介

Keepalived 是一个基于 VRRP(虚拟路由冗余协议)的高可用解决方案,主要用于实现 Linux 服务器的负载均衡和故障转移。它通过检测服务器状态并自动切换服务,确保系统在单点故障时仍能保持可用性

Keeplived安装启用及配置

安装与启用

bash 复制代码
[root@KA1 ~]# dnf install keepalived-2.2.8-3.el9.x86_64 -y
[root@KA1 ~]# systemctl enable --now keepalived.service

配置文件说明

global

|--------------------------|--------------------------------------|
| global_defs | 发生故障切换时邮件发送的目标邮箱,可以按 行区分写多个 |
| notification_email_from | 发邮件的地址 |
| smtp_server | 邮件服务器地址 |
| smtp_connect_timeout | 邮件服务器连接timeout |
| router_id | 每个keepalived主机唯一标识 |
| vrrp_skip_check_adv_addr | 对所有通告报文都检查,会比较 消耗性能 |
| vrrp_garp_interval | 免费 ARP(Gratuitous ARP)报文时间 间隔 |
| vrrp_gna_interval | 用于配置发送 Gratuitous NA(免费邻居 通告)报文的时间间隔 |
| vrrp_mcast_group4 | 指定组播IP地址范围 |

配置虚拟路由文件

master设备

backup设备

|--------------------|---------------------------------|
| state | 设备状态 |
| interface | 绑定为当前虚拟路由器使用的物理接口 |
| virtual_router_id | 每个虚拟路由器惟一标识,范围:0-255,主备id相同 |
| priority | 优先级 |
| advert_int | vrrp通告的时间间隔 |
| authentication | 认证机制 |
| auth_type AH|PASS | AH为IPSEC认证(不推荐),PASS为简单密码(建议使用) |
| uth_pass 1111 | 预共享密钥,仅前8位有效 |
| virtual_ipaddress | 虚拟IP,生产环境可能指定上百个IP |

Keepalived日志独立

独立日志可以方便我们管理Keeplived

设置方法:

实验效果:

独立子配置文件 实现单主架构

当生产环境复杂时,主配置文件中内容过多,不易管理将不同集群的配置,比如:不同集群的VIP配置放在独立的子配置文件中利用include 指令可以实现包含子配置文件

方法:

在主配置文件中指定

编辑子配置文件

效果:

Keep应用示例

VIP单播

默认keepalived主机之间利用多播相互通告消息,会造成网络拥塞,可以替换成单播,减少网络流量 在配置文件中设定

实验效果:

VIP抢占和非抢占模式

抢占模式:当主节点Master下线恢复后,会立即抢占 VIP,即使备节点(Backup)当前正在正常工作

非抢占模式: 通过 nopreempt 指令禁用抢占。即使原主节点恢复,只要备节点当前是活动状态,原主节点也不会夺回 VIP

**延时抢占模式:**是一种结合了抢占模式和非抢占模式优点的高级特性。它允许原主节点(Master)在恢复后不立即抢占 VIP,而是等待一段指定时间,确认自身状态稳定后再接管 VIP,从而避免因短暂故障恢复导致的频繁切换

抢占模式配置:

非抢占模式配置:

延迟抢占模式配置:

双主模式

在 Keepalived 的高可用架构中,是一种特殊的部署方式,它允许两台服务器互为备份,同时各自承担不同 VIP 的主角色。这种模式充分利用了硬件资源,实现了双向高可用,特别适合需要对称负载分担的场景

配置:

效果:

正常情况下一台主机一个VIP

将主机1的keepalived服务关闭模拟设备挂掉后

实现单主的LVS-DR模式

后端服务器配置:下载ngixn 、关闭火墙方便实验、开启nginx服务、配置默认发布页、配置VIP关闭ARP响应

两台后端服务器配置信息如下:

配置keepalived:

两台主机配置一样

配置后LVS规则:

实验效果:

实现HAProxy高可用

当主机同时配置了keeplived和haproxy时,如果haproxy出现了故障,我们应该及时的将VIP迁移到另一台备用的主机上,利用脚本可实现该功能

环境:

在两台配置keeplived的主机上下载以及配置haproxy

hapeoxy配置文件:

检测haproxy脚本内容:

keeplived配置文件内容:

实验效果:

当服务器1中haproxy服务出现问题时,服务器1的优先级降低30 降低后低于服务器2,VIP出现转移

服务器1:

服务器2:

相关推荐
艾莉丝努力练剑几秒前
【Linux:文件】基础IO
linux·运维·c语言·c++·人工智能·io·文件
_OP_CHEN3 分钟前
【Linux系统编程】(二十七)手撕动静态库原理与实战:从底层逻辑到代码落地
linux·操作系统·动态库·静态库·c/c++·库的原理与制作
南烟斋..3 分钟前
Linux设备驱动开发完全指南:从启动流程到Platform驱动模型
linux·驱动开发·uboot
脏脏a9 分钟前
告别物理出勤:Nginx 搭配 cpolar 实现远程开发无缝协作
运维·nginx
小草cys1 小时前
在 openEuler 上安装 DDE 图形桌面环境(适用于华为鲲鹏服务器/PC)
运维·服务器
天才奇男子9 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
小李独爱秋9 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
学嵌入式的小杨同学9 小时前
【Linux 封神之路】信号编程全解析:从信号基础到 MP3 播放器实战(含核心 API 与避坑指南)
java·linux·c语言·开发语言·vscode·vim·ux
酥暮沐9 小时前
iscsi部署网络存储
linux·网络·存储·iscsi
❀͜͡傀儡师10 小时前
centos 7部署dns服务器
linux·服务器·centos·dns