默认LVS是不带健康检查功能的,只有结合keepalived才能实现健康检测和高可用,不过这里我们使用脚本来简要替代一下keepalived的工作
后台运行脚本
该脚本会每隔1s检查情况,如果真实服务器挂了,就会将其剔除,如果检测到真实服务器是正常的,且ipvsadm配置里没有,就会将添加到配置中。
#!/bin/bash VIP=192.168.113.15:80 RIP1=192.168.113.100:80 RIP2=192.168.113.200:80 while : do for IP in $RIP1 $RIP2 do curl -s http://$IP &> /dev/null if [ $? -eq 0 ] ; then ipvsadm -Ln | grep -q $IP || ipvsadm -a -t $VIP -r $IP else ipvsadm -Ln | grep -q $IP && ipvsadm -d -t $VIP -r $IP fi done sleep 1 done
还有种方式就是将脚本里的while循环和sleep去掉,将其放在定时计划任务中执行
crontab -u root -e # 每两分钟执行一次检测 */2 * * * * /root/install_lvs_dr/check.sh