keepalived 配置過程中遇到了一些問題,做個記錄:
1、selinux的影響:keepalived配置了vrrp_script腳本總是無效
注:腳本返回值0代表成功,1或其他非0值代表失敗
腳本1:
#!/bin/bash
LOCALIP=redissrv1
ALIVE=`/usr/bin/redis-cli -h $LOCALIP PING`
if [ "$ALIVE" == "PONG" ]; then
exit 0
else
exit 1
fi
腳本2:
#!/bin/bash
LOCALIP=redissrv1
PORT=6379
nc -z $LOCALIP $PORT >/dev/null 2>&1 (屏蔽這句就返回成功)
經查找和分析是執行腳本權限問題,關閉selinux就可以了,臨時關閉:setenforce 0, 查看狀態:getenforce,或者修改/etc/sysconfig/selinux文件把里面的一行修改為SELINUX=disabled,保存重啟就可以了。
2、iptables的影響:keepalived分別在兩臺服務器執行腳本成功(測試兩臺redis均正常運行),出現兩臺服務器都設置了同樣的虛擬IP
這個是兩臺服務器的keepalived數據交互的問題,由于防火墻的原因,兩臺服務器沒有收到相互的優先級等信息,都以為是master,所以設置了虛擬IP
關閉防火墻或添加keepalived組播地址(224.0.0.18)
在iptables 中加入對vrrp報文的允許 注意書寫iptables的時候是-i插入 因為通常大家的iptables最后一條默認都是拒絕的。
iptables -A INPUT -d 224.0.0.18 -j ACCEPT
vrrp廣播報文使用的地址是224.0.0.18
注:centos 7版本默認使用firewall作為防火墻,不使用iptables
浙公網安備 33010602011771號