我一直在研究 Keepalived 虚拟 IP,以使 ProxySQL/MaxScale 具有高可用性,并遇到了虚拟 IP 的概念。我读过的所有文章都直接提到了一个随机虚拟 IP,但我没有找到它是如何配置的?比如我们从哪里获得这个 IP?
keepalived 配置文件如下所示 -
vrrp_instance VRRP_1 {
state BACKUP
interface eth0
virtual_router_id 101
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass sometext
}
virtual_ipaddress {
192.0.2.123
}
}
比如这里他们使用了 IP 192.0.2.123,但是我们应该如何分配虚拟 IP?任何文章或建议都会有帮助!
答案1
这有点搞笑,因为您发布的配置实际上是您定义虚拟 IP 的地方,在这种情况下它是192.0.2.123
。
Keepalived 是VRRP 协议,多用在路由器上,为电脑提供冗余网关。
在这种特定情况下,它在两个或多个主机上使用,以共享虚拟 IP 来公开服务。
假设您有两台主机,其 IP 为192.0.2.121
和192.0.2.122
。您在两台机器上都安装了 keepalived,并按照您发布的方式进行配置,但略有不同:例如,主机 1 的优先级为 100,而主机 2 的优先级为 50。
一旦配置完成,主机 1 将充当主服务器(因为它具有最高优先级)并将响应其真实 IP(.121)和虚拟 IP(.123)。
只要第一台服务器正常运行,第二台主机就只会响应其真实 IP。如果第一台服务器因任何原因停机,它将停止发送保持活动数据包,因此第二台服务器将接管并开始响应虚拟 IP 地址。