HAProxy + keepalived + 多个后端服务器场/虚拟 IP 地址

HAProxy + keepalived + 多个后端服务器场/虚拟 IP 地址

我们有几个后端服务器场(HTTP、FTP 等),基本上每个客户一个服务器场,我即将重建我们的负载平衡基础设施,从PiranhaHAProxy.
由于我们使用几个不同的后端服务器群,Piranha 配置目前如下所示(示例显示农场webserv01,第二农场webserv02使用相同的配置,但不同的虚拟 IP):

virtual webserv01 {
active = 1
address = 10.11.11.1 eth2:30
vip_nmask = 255.255.255.0
port = 80
send = "GET / HTTP/1.0\r\n\r\n"
expect = "HTTP"
use_regex = 0
load_monitor = none
scheduler = rr
protocol = tcp
timeout = 6
reentry = 15
quiesce_server = 0
server webserv01v {
address = 192.168.101.64
active = 1
port = 80
weight = 1
}
server webserv02v {
address = 192.168.102.64
active = 1
port = 80
weight = 1
}
server webserv05v {
address = 192.168.101.65
active = 1
port = 80
weight = 1
}
server webserv06v {
address = 192.168.102.65
active = 1
port = 80
weight = 1
}
}

(例如,客户 1 拥有自己的 Web 服务器群,使用 vIP 10.11.11.1:80,客户 2 拥有一个使用 vIP 10.11.11.2:80 的服务器群)。我很好奇,单个 HAProxy 实例是否能够使用不同的唯一 vIP 地址处理同一服务的多个服务器群。

基本设置如下:
2 个 HAProxy 实例(具有故障转移功能)
4 个 HTTP 后端服务器群(每个客户一个)
2 个 FTP 服务器群

为了更清楚起见,请参阅附件中我为 2 个 Web 服务器群提供的 HAProxy 配置示例。请注意不同的虚拟 IP:

#---------------------------------------------------------------------
# LB: VIRTUAL WEBSERVER POOL #01
#---------------------------------------------------------------------
frontend vWEB-LB-01
bind    10.11.11.1:80
mode    http
default_backend vWEB-Pool-01

backend vWEB-Pool-01
mode    http
balance roundrobin
server  webserv01v  192.168.101.64:80   check   weight 100  inter 1000
server  webserv02v  192.168.102.64:80   check   weight 100  inter 1000
server  webserv05v  192.168.101.65:80   check   weight 100  inter 1000
server  webserv06v  192.168.102.65:80   check   weight 100  inter 1000

#---------------------------------------------------------------------
# LB: VIRTUAL WEBSERVER POOL #02
#---------------------------------------------------------------------
frontend vWEB-LB-02
bind    10.11.11.2:80
mode    http
default_backend vWEB-Pool-02

backend vWEB-Pool-02
mode    http
balance roundrobin
server  webserv01v  192.168.101.75:80   check   weight 100  inter 1000
server  webserv02v  192.168.101.76:80   check   weight 100  inter 1000
server  webserv05v  192.168.101.68:80   check   weight 100  inter 1000
server  webserv06v  192.168.101.69:80   check   weight 100  inter 1000

HAProxy 和/或 keeoalived 能否按照显示的方式处理这个问题?如果可以,我该如何处理?

我想keepalived在 2 个 HAProxy 实例之间使用故障转移功能,并让它们为后端服务器场进行负载平衡。我现在对需要使用的多个虚拟 IP 地址有点困惑,任何见解都将不胜感激!

答案1

是的,HAproxy 会这样做。您只需使用 HAproxy 将使用的所有虚拟 IP 配置 keepalived。您可以在 keepalived.conf 中的 virtual_ipaddress 块中分配多个 IP:

virtual_ipaddress {
        192.168.0.10
        192.168.0.11
        192.168.0.12
        192.168.0.13
        }

相关内容