2.2. 로드 밸런싱을 사용하는 서비스에 대한 구성 매개변수
로드 밸런싱을 사용하는 오버클라우드의 각 서비스에 대해 다음 예제를 가이드로 사용하여 외부 로드 밸런서를 구성합니다. 환경에 따라 매개변수 값을 조정하고, 로드 밸런싱하려는 각 서비스의 섹션을 복사합니다.
대부분의 서비스에서는 기본 상태 점검 구성을 사용합니다.
- 연속된 두 상태 점검 간격은 2000밀리초 또는 2초로 설정됩니다.
- 두 가지 상태 점검이 성공하면 서버가 작동하는 것으로 간주됩니다.
- 5개의 상태 점검 실패 후 서비스는 오프라인으로 간주됩니다.
각 서비스는 해당 서비스의 기타 정보 섹션에 있는 기본 상태 점검 또는 추가 옵션을 나타냅니다.
aodh
포트 번호: 8042
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen aodh bind 172.16.20.250:8042 bind 172.16.23.250:8042 server overcloud-controller-0 172.16.20.150:8042 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8042 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8042 check fall 5 inter 2000 rise 2
Ceilometer
포트 번호: 8777
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen ceilometer bind 172.16.20.250:8777 bind 172.16.23.250:8777 server overcloud-controller-0 172.16.20.150:8777 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8777 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8777 check fall 5 inter 2000 rise 2
cinder
포트 번호: 8776
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen cinder bind 172.16.20.250:8776 bind 172.16.23.250:8776 server overcloud-controller-0 172.16.20.150:8776 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8776 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8776 check fall 5 inter 2000 rise 2
glance_api
포트 번호: 9292
바인딩 대상: 스토리지, 외부
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 스토리지
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen glance_api bind 172.16.23.250:9292 bind 172.16.21.250:9292 server overcloud-controller-0 172.16.21.150:9292 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.21.151:9292 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.21.152:9292 check fall 5 inter 2000 rise 2
glance_registry
포트 번호: 9191
internal_api에 바인딩
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen glance_registry bind 172.16.20.250:9191 server overcloud-controller-0 172.16.20.150:9191 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:9191 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:9191 check fall 5 inter 2000 rise 2
Gnocchi
포트 번호: 8041
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen gnocchi bind 172.16.20.250:8041 bind 172.16.23.250:8041 server overcloud-controller-0 172.16.20.150:8041 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8041 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8041 check fall 5 inter 2000 rise 2
heat_api
포트 번호: 8004
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
- 이 서비스는 기본 TCP 모드 대신 HTTP 모드를 사용합니다.
HAProxy 예:
listen heat_api bind 172.16.20.250:8004 bind 172.16.23.250:8004 mode http server overcloud-controller-0 172.16.20.150:8004 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8004 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8004 check fall 5 inter 2000 rise 2
heat_cfn
포트 번호: 8000
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen heat_cfn bind 172.16.20.250:8000 bind 172.16.23.250:8000 server overcloud-controller-0 172.16.20.150:8000 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.152:8000 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.151:8000 check fall 5 inter 2000 rise 2
heat_cloudwatch
포트 번호: 8003
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen heat_cloudwatch bind 172.16.20.250:8003 bind 172.16.23.250:8003 server overcloud-controller-0 172.16.20.150:8003 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8003 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8003 check fall 5 inter 2000 rise 2
Horizon
포트 번호: 80
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
- 이 서비스는 기본 TCP 모드 대신 HTTP 모드를 사용합니다.
- 이 서비스는 UI와의 상호 작용을 위해 쿠키 기반 지속성을 사용합니다.
HAProxy 예:
listen horizon bind 172.16.20.250:80 bind 172.16.23.250:80 mode http cookie SERVERID insert indirect nocache server overcloud-controller-0 172.16.20.150:80 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:80 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:80 check fall 5 inter 2000 rise 2
keystone_admin
포트 번호: 35357
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen keystone_admin bind 172.16.23.250:35357 bind 172.16.20.250:35357 server overcloud-controller-0 172.16.20.150:35357 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:35357 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:35357 check fall 5 inter 2000 rise 2
keystone_admin_ssh
포트 번호: 22
internal_api에 바인딩
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen keystone_admin_ssh bind 172.16.20.250:22 server overcloud-controller-0 172.16.20.150:22 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:22 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:22 check fall 5 inter 2000 rise 2
keystone_public
포트 번호: 5000
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen keystone_public bind 172.16.20.250:5000 bind 172.16.23.250:5000 server overcloud-controller-0 172.16.20.150:5000 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:5000 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:5000 check fall 5 inter 2000 rise 2
mysql
포트 번호: 3306
internal_api에 바인딩
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다. 그러나 상태 점검에서는 포트 9200을 사용합니다.
- 이 서비스는 한 번에 하나의 서버로만 부하 분산됩니다.
- 각 서버는 다른 모든 백업 서버를 사용할 수 없는 경우에만 로드 밸런싱에 사용됩니다.
- 서버가 오프라인인 경우 모든 연결이 즉시 종료됩니다.
- 양쪽에서 TCP keepalive 패킷을 보낼 수 있어야 합니다.
- 서버 상태를 확인하려면 HTTP 프로토콜을 활성화해야 합니다.
- 지속성 유지를 위해 IP 주소를 저장하도록 고정 테이블을 구성할 수 있습니다.
mysql 서비스는 Galera를 사용하여 고가용성 데이터베이스 클러스터를 제공합니다. Galera는 활성-활성 구성을 지원하지만 잠금 경합을 방지하려면 로드 밸런서에서 적용되는 활성-수동 구성을 사용해야 합니다.
HAProxy 예:
listen mysql bind 172.16.20.250:3306 option tcpka option httpchk stick on dst stick-table type ip size 1000 timeout client 0 timeout server 0 server overcloud-controller-0 172.16.20.150:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2 server overcloud-controller-1 172.16.20.151:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2 server overcloud-controller-2 172.16.20.152:3306 backup check fall 5 inter 2000 on-marked-down shutdown-sessions port 9200 rise 2
Neutron
포트 번호: 9696
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen neutron bind 172.16.20.250:9696 bind 172.16.23.250:9696 server overcloud-controller-0 172.16.20.150:9696 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:9696 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:9696 check fall 5 inter 2000 rise 2
nova_ec2
포트 번호: 8773
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen nova_ec2 bind 172.16.20.250:8773 bind 172.16.23.250:8773 server overcloud-controller-0 172.16.20.150:8773 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8773 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8773 check fall 5 inter 2000 rise 2
nova_metadata
포트 번호: 8775
internal_api에 바인딩
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen nova_metadata bind 172.16.20.250:8775 server overcloud-controller-0 172.16.20.150:8775 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8775 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8775 check fall 5 inter 2000 rise 2
nova_novncproxy
포트 번호: 6080
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
- 기본 로드 밸런싱 방법은 라운드 로빈입니다. 그러나 이 서비스에는 source 메서드를 사용합니다. 이 메서드는 소스 IP 주소를 해시하고 실행 중인 서버의 총 가중치로 나눕니다. 또한 이 메서드는 서버를 중단하거나 가동하지 않는 한 요청을 수신하는 서버를 지정하고 동일한 클라이언트 IP 주소가 항상 동일한 서버에 도달하도록 합니다. 실행 중인 서버 수의 변경으로 인해 해시 결과가 변경되면 로드 밸런서는 클라이언트를 다른 서버로 리디렉션합니다.
HAProxy 예:
listen nova_novncproxy bind 172.16.20.250:6080 bind 172.16.23.250:6080 balance source server overcloud-controller-0 172.16.20.150:6080 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:6080 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:6080 check fall 5 inter 2000 rise 2
nova_osapi
포트 번호: 8774
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen nova_osapi bind 172.16.20.250:8774 bind 172.16.23.250:8774 server overcloud-controller-0 172.16.20.150:8774 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8774 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8774 check fall 5 inter 2000 rise 2
nova_placement
포트 번호: 8778
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen nova_placement bind 172.16.20.250:8778 bind 172.16.23.250:8778 server overcloud-controller-0 172.16.20.150:8778 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8778 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8778 check fall 5 inter 2000 rise 2
Panko
포트 번호: 8779
bind to: internal_api, external
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen panko bind 172.16.20.250:8779 bind 172.16.23.250:8779 server overcloud-controller-0 172.16.20.150:8779 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:8779 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:8779 check fall 5 inter 2000 rise 2
Redis
포트 번호: 6379
bind to: internal_api (redis service IP)
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 internal_api
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
-
tcp-check
send/expect 시퀀스를 사용하여 상태 점검을 수행합니다. 보낼 문자열은info\ replication\r\n
이며 응답은role:master
입니다. -
Redis 서비스는 인증에 암호를 사용합니다. 예를 들어 HAProxy 구성은 AUTH 메서드 및 Redis 관리 암호와 함께
tcp-check
를 사용합니다. director는 일반적으로 임의의 암호를 생성하지만 사용자 정의 Redis 암호를 정의할 수 있습니다. -
기본 밸런싱 방법은
라운드 로빈
입니다. 그러나 이 서비스에는첫
번째 방법을 사용합니다. 이렇게 하면 사용 가능한 연결 슬롯이 있는 첫 번째 서버가 연결을 수신합니다.
HAProxy 예:
listen redis bind 172.16.20.249:6379 transparent balance first option tcp-check tcp-check send AUTH\ p@55w0rd!\r\n tcp-check send PING\r\n tcp-check expect string +PONG tcp-check send info\ replication\r\n tcp-check expect string role:master tcp-check send QUIT\r\n tcp-check expect string +OK server overcloud-controller-0 172.16.20.150:6379 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.20.151:6379 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.20.152:6379 check fall 5 inter 2000 rise 2
swift_proxy_server
포트 번호: 8080
바인딩 대상: 스토리지, 외부
대상 네트워크 또는 서버: overcloud-controller-0, overcloud-controller-1, overcloud-controller-2의 스토리지
기타 정보:
- 각 대상 서버는 기본 상태 점검을 사용합니다.
HAProxy 예:
listen swift_proxy_server bind 172.16.23.250:8080 bind 172.16.21.250:8080 server overcloud-controller-0 172.16.21.150:8080 check fall 5 inter 2000 rise 2 server overcloud-controller-1 172.16.21.151:8080 check fall 5 inter 2000 rise 2 server overcloud-controller-2 172.16.21.152:8080 check fall 5 inter 2000 rise 2