Load-Balancing
HAProxy + keepalived + 多個後端農場 / 虛擬 IP 地址
我們有幾個後端農場(HTTP、FTP 等),基本上每個客戶一個農場,我即將重建我們的負載平衡基礎設施,
Piranha
從HAProxy
.由於我們使用了幾個不同的後端伺服器群,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 有他自己的使用 vIP 10.11.11.1:80 的網路伺服器場,客戶 2 有一個使用 vIP 10.11.11.2:80 的場)。我很好奇 1 個 HAProxy 實例是否能夠使用不同的唯一 vIP 地址處理同一服務的多個場。
基本設置如下所示:
2 個 HAProxy 實例(帶故障轉移)
4 個 HTTP 後端場(每個客戶一個)
2 個 FTP 場
為了讓事情更清楚,請找到我的概念 HAProxy 配置範例,用於 2 個網路伺服器場。注意不同的虛擬 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 地址有點困惑,任何見解都將不勝感激!
是的,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 }