我正在尝试找到一种方法来在集群的主节点和备份节点上保留keepalived虚拟ip。
默认情况下,keepalived 仅在充当主节点的节点上激活虚拟 IP。所有其他节点都将删除它。
我想要实现的是让这个虚拟 IP 在所有节点(主节点和备份节点)上始终处于活动状态,即使在主节点重新启动之后也是如此。
到目前为止,我可以通过运行以下命令在所有节点上激活 VIP:
sudo ip addr add 192.168.1.100/24 dev enp0s3
但问题是:一旦我重新启动主节点,VIP 将从备份节点中删除。
我需要一些东西来让这些 VIP 在主服务器重启后仍然保留。有什么想法吗?
谢谢
答案1
我发现的解决方案是在所有节点的 keepalived.conf 文件级别定义一个静态 IP。此静态 IP 将与您的 VIP 不同,即使在重新启动后,它也会跨节点持久保留,您可以调用此 IP 来访问您的应用程序:
static_ipaddress {
192.168.1.101/24 dev ens18
}
我的配置文件如下所示:
static_ipaddress {
192.168.1.101/24 dev ens18
}
vrrp_instance VI_1 {
state MASTER
interface ens18
virtual_router_id 55
priority 150
advert_int 1
unicast_src_ip 192.168.1.199
unicast_peer {
192.168.1.84
}
authentication {
auth_type PASS
auth_pass ***
}
virtual_ipaddress {
192.168.1.100/24
}
}
virtual_server 192.168.1.101 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
protocol TCP
real_server 192.168.1.199 80 {
TCP_CHECK {
connect_timeout 10
}
}
real_server 192.168.1.84 80 {
TCP_CHECK {
connect_timeout 10
}
}
}