1. 常用命令
1.1. 查看当前VIP在哪个节点上
1 | # 查看VIP是否在筛选结果中 |
1.2. 查看keepalived的日志
1 | tail /var/log/messages |
1.3. 抓包命令
1 | # 抓包 |
1 | # tcpdump -nn -i any net 224.0.0.0/8 |
1.4. VIP操作
1 | # 解绑VIP |
1.5. keepalived 切 VIP
例如将 A 机器上的 VIP 迁移到B 机器上。
1.5.1. 停止keepalived服务
停止被迁移的机器(A机器)的keepalived服务。
1 | systemctl stop keepalived |
1.5.2. 查看日志
解绑 A机器 VIP的日志
1 | Sep 19 14:28:09 localhost systemd: Stopping LVS and VRRP High Availability Monitor... |
绑定 B 机器 VIP的日志
1 | Sep 17 17:20:25 localhost systemd: Starting LVS and VRRP High Availability Monitor... |
2. 指定keepalived的输出日志文件
2.1. 修改 /etc/sysconfig/keepalived
将KEEPALIVED_OPTIONS="-D"
改为KEEPALIVED_OPTIONS="-D -d -S 0"
。
1 | # Options for keepalived. See `keepalived --help' output and keepalived(8) and |
2.2. 修改rsyslog的配置 /etc/rsyslog.conf
在/etc/rsyslog.conf 添加 keepalived的日志路径
1 | vi /etc/rsyslog.conf |
2.3. 重启rsyslog和keepalived
1 | # 重启rsyslog |
3. Troubleshooting
3.1. virtual_router_id 同网段重复
日志报错如下:
1 | Mar 09 21:28:28 k8s4 Keepalived_vrrp[8548]: bogus VRRP packet received on eth0 !!! |
解决方法:
同一网段内LB节点配置的 virtual_router_id
值有重复了,选择一个不重复的0~255之间的值,可以用以下命令查看已存在的vrid。
1 | tcpdump -nn -i any net 224.0.0.0/8 |
3.2. Operation not permitted
问题:
两台主备机器都绑定了VIP,查看日志如下:
1 | Sep 28 14:28:37 node Keepalived_vrrp[1686]: (VI_1): send advert error 1 (Operation not permitted) |
原因:
由于iptables vrrp协议没有放通,导致keepalived直接无法互相探测选主。
解决方法:
添加iptabels vrrp协议规则
1 | iptables -A INPUT -p vrrp -j ACCEPT |
持久化iptables规则,添加规则到文件中/etc/sysconfig/iptables
1 | # vi /etc/sysconfig/iptables |
赞赏一下