IT漫步

技术生活札记©Yaohui

Notify script is not working on Keepalived v1.3.5

在公司内网通过Keepalived的VIP机制及诊断脚本提供一些高可用服务及智能选择服务,但由于内网网络设备及环境复杂,导致在上面组建的Overlay网络内的ARP广播不通畅,在Keepalived主备切换切换后当前有效节点的MAC地址通知不到客户端,从而导致客户端不能连接到正确的服务节点,因此就想使用Keepalived的notify scripts, 在Keepalived状态转变后在所有客户端执行一个脚本更新MAC地址。 脚本也简单,定义客户端列表直接shell上去设置MAC地址(节点间通过ssh key 配置了自动登录): #!/bin/sh declare -a nodes=( "192.168.126.8" "192.168.126.9" "192.168.126.10" "192.168.126.11" "192.168.126.12" "192.168.126.13" "192.168.126.14" "192.168.126.15" ) ip addr show eth0 | grep 192.168.126.99 foundVip=$? for ip in "${nodes[@]}"; do if [ $foundVip -eq 0 ]; then MAC=`ip addr show eth0 | grep ff:ff:ff:ff:ff:ff | awk '{print $2}'` ssh root@$ip arp --set 192.168.126.99 $MAC fi …

Proudly powered by WordPress