HAProxy + keepalived + 複数のバックエンドファーム / 仮想 IP アドレス

HAProxy + keepalived + 複数のバックエンドファーム / 仮想 IP アドレス

私たちは複数のバックエンドファーム(HTTP、FTPなど)を持っており、基本的には顧客ごとに1つのファームがあり、ロードバランシングインフラストラクチャを再構築しようとしています。PiranhaHAProxy
使用しているため 複数の異なるバックエンドサーバーファームピラニアの設定は現在このようになっています(例はファームを示しています)ウェブサーブ01、第2農場ウェブサーブ02同じ設定を使用しますが、仮想 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 を使用する独自の Web サーバー ファームを持ち、顧客 2 は vIP 10.11.11.2:80 を使用するファームを持っています)。1 つの HAProxy インスタンスで、異なる一意の vIP アドレスを使用して同じサービスの複数のファームを処理できるかどうか興味があります。

基本的なセットアップは次のようになります:
2 つの HAProxy インスタンス (フェイルオーバーあり)
4 つの HTTP バックエンド ファーム (顧客ごとに 1 つ)
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 は、これを表示されている方法で処理できますか? できる場合、どのように対処すればよいですか? 2 つの HAProxy インスタンス間のフェイルオーバーの目的で

使用し、バックエンド ファームの負荷分散を実行させたいと思いますkeepalived。現在、使用する必要がある複数の仮想 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
        }

関連情報