第一步:下载Keepalived安装包
官方下载地址:https://www.keepalived.org/software/keepalived-2.2.2.tar.gz

第二步:安装编译依赖
在开始编译安装Keepalived之前,需要先安装必要的依赖包,这涉及基础的Linux系统运维。
yum -y install gcc curl openssl-devel libnl3-devel net-snmp-devel
第三步:编译与安装Keepalived
解压下载的源码包,并编译安装到指定目录。
# 解压
tar -xf keepalived-2.2.2.tar.gz
# 进入解压目录
cd keepalived-2.2.2
# 配置安装路径
./configure --prefix=/data/keepalived
# 编译并安装
make
make install
# 创建软链接方便命令调用
ln -s /data/keepalived/sbin/keepalived /usr/sbin/keepalived
# 验证安装
keepalived -v
第四步:配置Systemd服务
为了方便管理和自启动,我们需要为Keepalived创建Systemd服务文件。
vim /usr/lib/systemd/system/keepalived.service
将以下内容写入文件:
[Unit]
Description=LVS and VRRP High Availability Monitor
After=network-online.target syslog.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/keepalived.pid
KillMode=process
EnvironmentFile=-/data/keepalived/etc/sysconfig/keepalived
ExecStart=/data/keepalived/sbin/keepalived $KEEPALIVED_OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
第五步:创建主从节点配置文件
首先在主节点服务器上操作。
- 创建配置目录并复制默认配置文件:
mkdir /etc/keepalived
cp /data/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
-
编辑主配置文件 /etc/keepalived/keepalived.conf:
vim /etc/keepalived/keepalived.conf
配置示例如下:
! Configuration File for keepalived
global_defs {
notification_email {
root@localhost
}
notification_email_from keepalived@localhost
smtp_server 127.0.0.1
smtp_connect_timeout 10
router_id kp_ng01
}
vrrp_script chk_nginx {
script "/etc/keepalived/sh/check.sh"
interval 3
}
vrrp_instance VI_1 {
state MASTER
interface ens192
virtual_router_id 70
priority 100
advert_int 2
authentication {
auth_type PASS
auth_pass 12345
}
track_script {
chk_nginx
}
virtual_ipaddress {
172.16.30.161
}
}
- 创建健康检查脚本
/etc/keepalived/sh/check.sh:
#!/bin/bash
echo "[nginx_check.sh]:now prepareing to healthy check " >> /var/log/messages
n=`netstat -tunlp | grep nginx|wc -l`
if [ $n -eq "0" ]; then
echo "[ nginx_check.sh]:now start nginx">> /var/log/messages
/data/nginx/sbin/nginx
n2=`netstat -tunlp | grep nginx|wc -l`
if [ $n2 -eq "0" ]; then
echo "[nginx_check.sh]:nginx down,keepalived will stop" >> /var/log/messages
systemctl stop keepalived
fi
fi
记得给脚本添加执行权限:
chmod +x /etc/keepalived/sh/check.sh
从节点配置
注意:在从节点服务器上重复此步骤,但配置文件中的router_id、state和priority需要相应修改。
主要区别部分如下,其他配置与主节点保持一致:
global_defs {
...
router_id kp_ng02
}
...
vrrp_instance VI_1 {
state BACKUP
...
priority 90
...
}
第六步:配置日志输出
为了方便问题排查,我们将Keepalived的日志定向到独立文件。
- 修改配置文件,启用日志并指定设备:
vim /data/keepalived/etc/sysconfig/keepalived
添加或修改以下行:
KEEPALIVED_OPTIONS="-D -d -S 0"
- 配置rsyslog,将
local0设备的日志写入单独文件,这需要了解Linux下的网络与系统日志管理机制。
vim /etc/rsyslog.conf
在文件末尾添加:
local0.* /var/log/keepalived.log
- 重启相关服务使配置生效:
systemctl restart rsyslog
systemctl restart keepalived
完成以上步骤后,一个基于Keepalived和Nginx的高可用集群就部署完成了。虚拟IP(VIP)172.16.30.161将始终由主节点或健康的备用节点承载,从而保障服务的连续性。
|