随手记一下 keepalived
本地有一个vip-manager 的vip ,我的目的是为了检测vip-manager 是否正常起来并且vip 落在某个节点上才启动keepalived的vip。换句话说:目的是需要两个vip都落在一个节点上。下面为测试集群,没有vip。 所以直接检测网卡的ip 是否存在即可。
CentOS 7.9
替换源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
yum install keepalived -y
vim /etc/keepalived/keepalived.conf
$ cat check_ip.sh
#!/bin/bash
target_ip=$1 # 要检测的 IP 地址
local_ip=$(ip addr show enp2s0 | awk '/inet / {print $2}' | cut -d '/' -f 1) # 本机指定网卡的 IP 地址
for ip in ${local_ip};do
if [ "$ip" = "$target_ip" ]; then
exit 0 # 本机存在指定的 IP 地址,返回成功退出码
fi
done
exit 1
vrrp_script $name{
//这里带上自己的检测脚本。
}
tarck_script{
$name //带上上面的脚本名称。
}
systemctl restart keepalived
测试
看到了vip 在网卡上了。 但是ping不通, 吧 global_default 的 vrrp_strict 删掉重启服务。在ping一次就好了。
原因:
vrrp_strict 开启之后,会导致keepalived 严格遵守VRRP协议,禁止以下状况:
1.无VIP地址
2.配置了单播邻居
3.在VRRP版本2中有IPv6地址,开启动此项会自动开启iptables防火墙规则