keepalived的安装与配置


一、下载安装

yum install keepalived

二、配置

vi /etc/keepalived/keepalived.conf

1.主(master)

global_defs {
router_id LVS_MASTER #名称标记为master,名字随便取
vrrp_gna_interval 0
}

#加入周期性检测nginx服务脚本的相关配置

vrrp_script check_nginx{
script "/etc/keepalived/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动
interval 2 #(检测脚本执行的间隔,单位是秒)
}

vrrp_instance VI_1 {
state MASTER #指定当前节点为master节点,只能有一个master,其余只能是backup
interface ens33 #绑定此虚拟路由使用的网卡的名称,使用ifconfig或者ip addr查看
virtual_router_id 99 #指定虚拟路由id,虚拟路由的唯一标识,范围是0-255,mater和backup节点需要指定一样的,相同id为一组
priority 200 #指定当前结点的优先级,master节点要大于backup节点。
advert_int 1 #指定发送VRRP通告的间隔,单位是秒
virtual_ipaddress {
192.168.199.130 #指定虚拟ip,自己定义的虚拟ip
}

#添加跟踪(执行脚本)

track_script { check_nginx }

}

2.备(backup)

global_defs {
router_id LVS_BACKUP #名称标记为BACKUP,名字随便取
vrrp_gna_interval 0
}

#加入周期性检测nginx服务脚本的相关配置

vrrp_script check_nginx{
script "/etc/keepalived/check_nginx.sh" #心跳执行的脚本,检测nginx是否启动
interval 2 #(检测脚本执行的间隔,单位是秒)
}

vrrp_instance VI_1 {
state BACKUP #指定当前节点为master节点,只能有一个master,其余只能是backup
interface ens33 #绑定此虚拟路由使用的网卡的名称,使用ifconfig或者ip addr查看
virtual_router_id 99 #指定虚拟路由id,虚拟路由的唯一标识,范围是0-255,mater和backup节点需要指定一样的,相同id为一组
priority 199 #指定当前结点的优先级,master节点要大于backup节点。
advert_int 1 #指定发送VRRP通告的间隔,单位是秒
virtual_ipaddress {
192.168.199.130 #指定虚拟ip,自己定义的虚拟ip
}

#添加跟踪(执行脚本)

track_script{ check_nginx }

}

3.编辑监听脚本

vi /etc/keepalived/check_nginx.sh

#!/bin/bash

#检测nginx是否启动了

A=`ps -C nginx --no-header |wc -l`
if [ $A -eq 0 ]; then #如果nginx没有启动就启动nginx
/usr/local/nginx/sbin/nginx #重启nginx,也可以使直接监听应用服务
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then #nginx重启失败,则停掉keepalived服务,进行VIP转移
killall keepalived
fi
fi

4. 查看网卡是否有虚拟IP