> 技术文档 > keepalived篇

keepalived篇

        Keepalived 是一款基于 VRRP(虚拟路由冗余协议) 的开源高可用软件,核心功能是通过监控服务器状态实现故障自动转移,确保关键服务不中断。它通过让多台服务器共享一个虚拟 IP 地址(VIP),在主服务器故障时,自动将 VIP 切换到备用服务器,整个过程对客户端透明。

一、实验环境设定

KA1:172.25.254.50

KA2:172.25.254.60

二、主备模式的部署

先检查火墙是否关闭:

没关闭的话关闭火墙:

KA1同理:

启用allow和local,0.0.0.0/0表示所有都可以:

在KA2上时间源指定到50上:

同步成功:

搜索keep软件包:

两台主机安装软件包:

表示对所有虚拟路由都生效:

虚拟路由的信息:

后端主机的设定:

global部分修改后:

vrrp部分修改后:

改了的内容:

第二台主机同样设定:

再稍微修改一点设定:

改一个backup再改一个优先级:

先看一下有没有报错,没报错就可以启动:

三、日志分离

编译文件:

对比编译前后:

再编译一个文件:

仅增加一个内容:

分离成功:

四、非抢占模式和延迟抢占

        在 Keepalived 中,抢占模式非抢占模式 是控制主备节点切换行为的两种核心策略,决定了当原主节点恢复后是否重新夺回主节点地位。这两种模式直接影响高可用集群的稳定性,需根据业务场景选择。

两台主机上都设定BACKUP和非抢占模式:

IP不在KA2上:

发现IP在KA1上:

(因为KA1优先级比KA2高)

KA1暂停keep服务:

IP到KA2上了:

即使KA1再次打开keep服务,IP也不会回到KA1上:

(因为此时是非抢占模式)

设置抢占模式:

延迟抢占时间为10S

IP一开始在KA1上:

关闭KA1的keep服务 :

IP到KA2上了:

KA1重新打开keep服务,但是IP一开始没有过来:

延迟一段时间后IP过来了:

五、脚本通知

先写一个脚本:

一个是节点成为主节点时触发的脚本

一个是节点转为备节点时触发的脚本

一个是节点转为失败状态时触发的脚本

开启keep服务执行脚本功能,执行脚本的身份为root:

添加了三个内容:

安装s-nail服务: