HAProxy + keepalived + 여러 백엔드 팜/가상 IP 주소

HAProxy + keepalived + 여러 백엔드 팜/가상 IP 주소

우리는 여러 백엔드 팜(HTTP, FTP 등)을 보유하고 있으며 기본적으로 각 고객당 하나의 팜을 갖고 있으며 로드 밸런싱 인프라를 재구축할 예정입니다.Piranha에게HAProxy.
우리가 사용하고 있기 때문에여러 가지 백엔드 서버 팜, Piranha 구성은 현재 다음과 같습니다(예: farmwebserv01, 2차 농장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 주소를 사용하여 동일한 서비스의 여러 팜을 처리할 수 있는지 궁금합니다.

기본 설정은 다음과 같습니다.
HAProxy 인스턴스 2개(장애 조치 포함)
HTTP 백엔드 팜 4개(고객당 하나씩)
FTP 팜 2개

더 명확하게 설명하기 위해 2개의 웹 서버 팜에 대한 내 개념 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.conf의 virtual_ipaddress 블록에 여러 IP를 할당할 수 있습니다.

virtual_ipaddress {
        192.168.0.10
        192.168.0.11
        192.168.0.12
        192.168.0.13
        }

관련 정보