У меня есть следующий файл keepalived.conf:
vrrp_script chk_nginx {
script "curl http://localhost/vrrp_healthcheck/"
interval 2 # every 2 seconds
weight 2 # add 2 points if OK
}
vrrp_instance VI_1 {
interface ens160 # interface to monitor
virtual_router_id 50
priority 100
virtual_ipaddress {
192.168.120.25 label ens160:10
}
track_script {
chk_nginx
}
notify /usr/local/bin/notify.sh
}
На главном узле в выводе ifconfig я вижу следующее:
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.120.20 netmask 255.255.255.224 broadcast 192.168.120.31
ether 00:50:56:a5:c5:3a txqueuelen 1000 (Ethernet)
RX packets 138308 bytes 130425415 (124.3 MiB)
RX errors 0 dropped 73 overruns 0 frame 0
TX packets 122917 bytes 50788591 (48.4 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
ens160:10: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.120.25 netmask 255.255.255.255 broadcast 0.0.0.0
ether 00:50:56:a5:c5:3a txqueuelen 1000 (Ethernet)
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1 (Local Loopback)
RX packets 9730 bytes 812897 (793.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9730 bytes 812897 (793.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Что меня беспокоит, так это разные широковещательные и сетевые адреса в записи ens160: 10 (которая создается keepalived).
Разве они не должны совпадать с теми, что из обычного интерфейса?
На данный момент кажется, что моя настройка работает, но я хочу убедиться, что она настроена правильно.
Вы можете просто изменить блок виртуальных IP-адресов, чтобы он читался:
virtual_ipaddress {
192.168.120.25/27 label ens160:10
}
Маска по умолчанию: /32
или 255.255.255.255
.