Keepalived 处于环形架构中,或者其他更好的方法

Keepalived 处于环形架构中,或者其他更好的方法

我有三个负载均衡器(LB1、LB2、LB3)并计划使用环形架构进行主动-主动设置,例如

LB1    LB2    LB3
IP1    IP2    IP3

思路如下:

  1. 如果LB1失败,IP1将浮动至IP2
  2. 如果 LB2 失败,IP2 将浮动至 IP3
  3. 如果 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 
    }
}

重点是第二个节点上的配置类似,但 和 不同statepriority在所示的示例中,您需要更改这些行以使另一个节点成为MASTERVIP2 和BACKUPVIP1。默认情况下,每台机器都有自己的 VIP,当发生故障时,两个 VIP 都会分配给剩余的机器。

当然,对于 3 台机器也可以类似地进行操作。您需要定义三个vrrp_instance而不是两个。

相关内容