6장. HAProxy를 사용하여 트래픽 부하 분산
HAProxy 서비스는 고가용성 클러스터의 컨트롤러 노드에 대한 트래픽 부하 분산과 로깅 및 샘플 구성을 제공합니다.
haproxy
패키지에는 동일한 이름의 systemd
서비스에 해당하는 haproxy
데몬이 포함되어 있습니다. Pacemaker는 HAProxy 서비스를 haproxy-bundle
이라는 고가용성 서비스로 관리합니다.
HAProxy에 대한 자세한 내용은 로드 밸런서 관리 가이드의 HAProxy 구성 장을 참조하십시오.
HAProxy가 올바르게 구성되었는지 확인하는 방법에 대한 자세한 내용은 KCS 문서 How can I verify my haproxy.cfg is correctly configured to load openstack services?.
6.1. HAProxy 작동 방식
director는 HAProxy 서비스를 사용하도록 대부분의 Red Hat OpenStack Platform 서비스를 구성할 수 있습니다. director는 /var/lib/config-data/haproxy/etc/haproxy/haproxy.cfg
파일에서 이러한 서비스를 설정하여 HAProxy가 각 오버클라우드 노드의 전용 컨테이너에서 실행되도록 지시합니다.
다음 표는 HAProxy에서 관리하는 서비스 목록을 보여줍니다.
aodh | cinder | glance_api | gnocchi |
haproxy.stats | heat_api | heat_cfn | Horizon |
keystone_admin | keystone_public | mysql | Neutron |
nova_metadata | nova_novncproxy | nova_osapi | nova_placement |
haproxy.cfg
파일의 각 서비스에 대해 다음 속성을 볼 수 있습니다.
- listen: 요청을 수신 대기 중인 서비스의 이름입니다.
- bind: 서비스가 수신 대기 중인 IP 주소 및 TCP 포트 번호입니다.
- server: HAProxy, IP 주소 및 수신 대기 포트, 서버에 대한 추가 정보를 사용하는 각 컨트롤러 노드 서버의 이름입니다.
다음 예제는 haproxy.cfg
파일의 OpenStack Block Storage(cinder) 서비스 구성을 보여줍니다.
listen cinder bind 172.16.0.10:8776 bind 192.168.1.150:8776 mode http http-request set-header X-Forwarded-Proto https if { ssl_fc } http-request set-header X-Forwarded-Proto http if !{ ssl_fc } option httpchk server overcloud-controller-0 172.16.0.13:8777 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.0.14:8777 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.0.15:8777 check fall 5 inter 2000 rise 2
이 예제 출력에서는 OpenStack Block Storage(cinder) 서비스에 대한 다음 정보를 보여줍니다.
-
172.16.0.10:8776
: 오버클라우드에서 사용할 내부 API 네트워크(VLAN201)의 가상 IP 주소 및 포트입니다. -
192.168.1.150:8776
: 외부 네트워크(VLAN100)의 가상 IP 주소 및 포트로, 오버클라우드 외부에서 API 네트워크에 액세스할 수 있습니다. -
8776
: OpenStack Block Storage(cinder) 서비스가 수신 대기 중인 포트 번호입니다. -
Server
: 컨트롤러 노드 이름 및 IP 주소입니다. HAProxy는 해당 IP 주소로 이루어진 요청을서버
출력에 나열된 컨트롤러 노드 중 하나로 보낼 수 있습니다. -
httpchk
: 컨트롤러 노드 서버에서 상태 점검을 활성화합니다. -
fall 5
: 서비스가 오프라인 상태인지 확인하는 데 실패한 상태 점검 수입니다. -
2000년 간
: 연속된 두 개의 상태 점검 간격(밀리초)입니다. -
up 2
: 서비스가 실행 중인지 확인하는 데 성공한 상태 점검 수입니다.
haproxy.cfg
파일에서 사용할 수 있는 설정에 대한 자세한 내용은 haproxy
패키지가 설치된 모든 노드의 /usr/share/doc/haproxy-[VERSION]/configuration.txt
파일을 참조하십시오.