个人博客,记录知识防止遗忘
keepalived配置说明
keepalived配置说明

keepalived配置说明

说起keepalived,就不得不提vrrp协议了。

我相信很多网络工程师听到vrrp都会脑袋一激灵,想起年少时被“vrrp主备”和“vrrp负载冗余”支配的恐惧。

keepalived是一种高性能的服务器高可用或热备解决方案,其实是以vrrp协议(虚拟路由冗余协议)为基础而实现的。

所以配置keepalived 其实和路由器上配置vrrp是差不太多的,本文将大致说明配置方法和需要注意的地方。并在最后列举一个搭配nginx负载均衡的双主架构

内容大纲

1    keepalived 配置文件

keepalived 配置文件有以下个大段:

配置段 说明
global_defs 全局配置段
vrrp_instance 实例配置段
vrrp_script 健康检查脚本段
vrrp_sync_group 绑定多个instance实例为一个组,同生共死
virtual_server 用来搭配lvs(一种基于内核的四层负载均衡)

1.1    global_defs

111.png

(很久之前做的笔记,域名还不是这个caojie.blog,请忽略)

注: 详细的配置参数还有很多,如 vrrp_garp_master_delay 等,若有需要可以去官方文档查看

1.2    vrrp_instance

image.png
上图中蓝色皆为可选配置项,黄色为应使用配置项

补充:
① vrrp_notify
vrrp_notify是在触发了keepalived状态切换之后,才会执行的操作。
可以编写一些邮件通知之类的,当keepalived状态变化之后,自动通知相关人员,并根据脚本自动启停一些服务等。

notify的具体用法:
 notify_master:当前节点成为master时,执行脚本(一般用于启动某服务,比如nginx等)
notify_backup:当前节点成为backup时,执行脚本(一般用于关闭某服务,比如nginx等)
 notify_fault:当前节点出现故障,执行的任务; 

② track_script{}
用于启用已定义的检测动作(脚本),详见下文。

③ 虚拟mac:**
每个虚拟路由器都有一个虚拟mac地址,默认为 00-00-5e-00-01-virtual_router_id


1.3    vrrp_script

keepalived只能做到对网络故障和keepalived本身的监控,这些在实际中是远远不够的。
我们还需要监控keepalived所在服务器上的其他业务进程,根据业务进程的运行状态决定是否需要进行主备切换。
所以这个时候,一般都可以提前写好相关脚本,然后将脚本路径加入vrrp_script的配置中。这样的话,基本可以实现以下的功能:

服务器某种状态 –> 触发脚本 –> 触发keepalived主备切换

# 定义动作 “chk_mysql_port”
vrrp_script chk_mysql_port {     #检测mysql服务是否在运行。有很多方式,比如进程,用脚本检测等等
    script "/opt/chk_mysql.sh"   #这里通过脚本监测
    interval 2                   #脚本执行间隔,每2s检测一次
    weight -20                    #脚本结果导致的优先级变更,检测失败(脚本返回非0)则优先级 -20
    fall 2                    #检测连续2次失败才算确定是真失败。会用weight减少优先级(1-255之间)
    rise 1                    #检测1次成功就算成功。但不修改优先级
}

# 定义后需要在vrrp_instance配置段中启用,例如
    track_script {
     chk_mysql_port
    }

此处详情可以参考我的另一篇文章
mysql 双主+keepalived +1从

1.4    vrrp_sync_group

如下图所示,主要用来绑定多个实例为一组。任何一个实例切换了状态,同组的其它实例也会改变状态。
(好兄弟就要同生共死)
22.png

1.5    virtual_server

lvs一般只有大型网站会用到。后续有时间再整理下相关实验截图,和lvs放在一起写个文章放上来。
这里暂时跳过,可以直接注释。

2    双主架构

这是之前做实验时,我自己画的架构图,确实丑了点,keepalived的漂移过程画的也不是很形象,先凑活着看吧~
按照这个架构配合nginx可以实现7层的负载均衡。有时间我会再重新搭实验,整理下配置等。
33.png

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注