我有三个负载均衡器(LB1、LB2、LB3)并计划使用环形架构进行主动-主动设置,例如
LB1 LB2 LB3
IP1 IP2 IP3
思路如下:
- 如果LB1失败,IP1将浮动至IP2
- 如果 LB2 失败,IP2 将浮动至 IP3
- 如果 LB3 失败,IP3 将浮动至 IP1
上述设置常见吗?有潜在问题吗?
或者对于三节点设置有任何更好的建议吗?
答案1
使用keepalived可以实现主动-主动场景。您需要配置多个,vrrp_instance
例如:
vrrp_sync_group G1 { # must be before vrrp_instance declaration
group {
vserver1
}
group {
vserver2
}
}
# The primary server
vrrp_instance vserver1 {
interface eth0
state MASTER
virtual_router_id 1
priority 100
advert_int 3
authentication {
auth_type PASS
auth_pass mypass
}
virtual_ipaddress {
VIP1/24 # default CIDR mask is /32
}
}
# The backup server
vrrp_instance vserver2 {
interface eth0
state backup
virtual_router_id 2
priority 50
advert_int 3
authentication {
auth_type PASS
auth_pass mypapas
}
virtual_ipaddress {
VIP2/24 # default CIDR mask is /32
}
}
重点是第二个节点上的配置类似,但 和 不同state
。priority
在所示的示例中,您需要更改这些行以使另一个节点成为MASTER
VIP2 和BACKUP
VIP1。默认情况下,每台机器都有自己的 VIP,当发生故障时,两个 VIP 都会分配给剩余的机器。
当然,对于 3 台机器也可以类似地进行操作。您需要定义三个vrrp_instance
而不是两个。