1、官网下载地址
2、上传到服务器地址目录
一般上传到/opt目录下
3、解压并安装
tar -zxvf keepalived-2.3.0.tar.gz
./configure --prefix=/usr/local/keepalived --sysconf=/etc
–prefix:指定keepalived的安装位置
–sysconf:keepalived 核心配置文件所在位置,该位置必须指定/etc,否则会启动失败
执行./configure命令时若报以下错误,可能是缺少libnl和libnl-3的依赖
WARNING - this build will not support IPVS with IPv6. Please install libnl/libnl-3 dev libraries to support IPv6 with IPVS
安装相关依赖,然后重新执行./configure --prefix=/usr/local/keepalived --sysconf=/etc命令即可
yum install -y libnl-devel libnl
4、编译
make && make install
此时,keepalived的配置文件所在目录为:/etc/keepalived,配置文件名为:keepalived.conf

在配置文件中添加以下配置(主节点):
global_defs {
#路由id:当前安装 keepalived 的节点主机标识符,保证全局唯一
router_id keep_prod_21
# 脚本执行用户
script_user root
# enable_script_security
}
vrrp_script check_nginx_alive {
script "/etc/keepalived/check_nginx_alive_or_not.sh"
interval 1 # 每隔两秒运行上一行脚本
weight -20
user root
#weight -10 # 如果脚本运行失败,则升级权重 -10
}
vrrp_instance VI_1 {
#表示状态是MASTER主机还是备用机 BACKUP
state MASTER
#该实例绑定的网卡
interface eth0
#保证主备节点一致即可
virtual_router_id 51
#权重,master权重一般高于 backup,如果有多个,那就是选举,谁的权重高,谁就当选
priority 100
#主备之间同步检查时间间隔,单位秒
advert_int 1
#认证权限密码,防止非法节点进入
authentication {
auth_type PASS
auth_pass Zf@123456
}
#虚拟出来的 ip,可以有多个(vip)
virtual_ipaddress {
192.168.89.20
}
track_script {
check_nginx_alive # 追踪 nginx 脚本
}
}
在另外一台服务的配置文件中配置以下内容(备节点)
global_defs {
#路由id:当前安装 keepalived 的节点主机标识符,保证全局唯一
router_id keep_prod_22
# 脚本执行用户
script_user root
# enable_script_security
}
vrrp_script check_nginx_alive {
script "/etc/keepalived/check_nginx_alive_or_not.sh"
interval 1 # 每隔两秒运行上一行脚本
weight -20
user root
#weight -10 # 如果脚本运行失败,则升级权重 -10
}
vrrp_instance VI_1 {
#表示状态是MASTER主机还是备用机 BACKUP
state BACKUP
#该实例绑定的网卡
interface eth0
#保证主备节点一致即可
virtual_router_id 51
#权重,master权重一般高于 backup,如果有多个,那就是选举,谁的权重高,谁就当选
priority 90
#主备之间同步检查时间间隔,单位秒
advert_int 1
#认证权限密码,防止非法节点进入
authentication {
auth_type PASS
auth_pass Zf@123456
}
#虚拟出来的 ip,可以有多个(vip)
virtual_ipaddress {
192.168.89.20
}
track_script {
check_nginx_alive # 追踪 nginx 脚本
}
}
注意:备节点中 router_id 与主节点不能一致,必须保证唯一,备节点的 state 必须为 BACKUP,权重priority 必须比主节点小
在/etc//keepalived目录下创建检测nginx存活脚本,并添加以下内容
创建检测脚本
touch check_nginx_alive_or_not.sh
添加以下内容
#!/bin/bash
A=$(ps -C nginx --no-header | wc -l)
if [ "$A" -ne 0 ]; then
exit 0 # nginx 进程正在运行,返回 0 表示成功
else
exit 1 # nginx 进程未运行,返回 1 表示失败
fi
6、启动
# 启动 keepalived
systemctl start keepalived
# 设置开机自启
systemctl enable keepalived
&spm=1001.2101.3001.5002&articleId=144376378&d=1&t=3&u=65719118082144839b107717c9212d43)
4037

被折叠的 条评论
为什么被折叠?



