10장. 다른 종류의 로드 밸런서 생성
로드 밸런싱 서비스(octavia)를 사용하여 관리하려는 HTTP 이외의 네트워크 트래픽 유형과 일치하는 로드 밸런서 유형을 생성합니다.
10.1. TCP 로드 밸런서 생성 링크 복사링크가 클립보드에 복사되었습니다!
HTTP 이외의 TCP 기반 서비스 및 애플리케이션에 대한 네트워크 트래픽을 관리해야 하는 경우 로드 밸런서를 생성할 수 있습니다. 백엔드 멤버를 계속 사용할 수 있도록 상태 모니터를 생성하는 것이 좋습니다.
사전 요구 사항
- 인터넷에서 연결할 수 있는 공유 외부(공용) 서브넷입니다.
절차
자격 증명 파일을 가져옵니다.
- 예제
$ source ~/overcloudrc
공용 서브넷(
public_subnet)에 로드 밸런서(lb1)를 만듭니다.참고controlPlane 내부의 값은 이 절차의 예제 명령에 사용되는 샘플 값입니다. 이러한 샘플 값을 사이트에 적합한 값으로 바꿉니다.
- 예제
$ openstack loadbalancer create --name lb1 \ --vip-subnet-id public_subnet --wait
사용자 지정 애플리케이션이 구성된 지정된 포트(
23456)에TCP리스너(listener1)를 만듭니다.- 예제
$ openstack loadbalancer listener create --name listener1 \ --protocol TCP --protocol-port 23456 lb1 --wait
풀(
pool1)을 만들고 리스너의 기본 풀로 설정합니다.- 예제
이 예에서는 특정 TCP 포트에서 사용자 지정 애플리케이션을 호스팅하는 백엔드 서버가 포함된 프라이빗 서브넷을 사용하는 풀이 생성됩니다.
$ openstack loadbalancer pool create --name pool1 \ --lb-algorithm ROUND_ROBIN --listener listener1 \ --protocol TCP --wait
백엔드 서버에 연결하고 TCP 서비스 포트를 프로브하는 풀(
pool1)에 상태 모니터(healthmon1)를 만듭니다.- 예제
상태 점검이 권장되지만 필수는 아닙니다. 상태 모니터가 정의되지 않은 경우 멤버 서버는
ONLINE으로 간주됩니다.$ openstack loadbalancer healthmonitor create --name healthmon1 \ --delay 15 --max-retries 4 --timeout 10 --type TCP pool1 --wait
프라이빗 서브넷(
private_subnet)의 백엔드 서버(를 풀에 추가합니다.192.0.2.10및 192.0.2.11)- 예제
이 예에서 백엔드 서버
192.0.2.10및192.0.2.11은 각각member1및member2로 이름이 지정됩니다.$ openstack loadbalancer member create --name member1 --subnet-id \ private_subnet --address 192.0.2.10 --protocol-port 443 pool1 --wait $ openstack loadbalancer member create --name member2 --subnet-id \ private_subnet --address 192.0.2.11 --protocol-port 443 pool1 --wait
검증
로드 밸런서(
lb1) 설정을 보고 확인합니다.- 예제
$ openstack loadbalancer show lb1- 샘플 출력
+---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | admin_state_up | True | | created_at | 2022-01-15T11:11:09 | | description | | | flavor | | | id | 788fe121-3dec-4e1b-8360-4020642238b0 | | listeners | 09f28053-fde8-4c78-88b9-0f191d84120e | | name | lb1 | | operating_status | ONLINE | | pools | 627842b3-eed8-4f5f-9f4a-01a738e64d6a | | project_id | dda678ca5b1241e7ad7bf7eb211a2fd7 | | provider | amphora | | provisioning_status | ACTIVE | | updated_at | 2022-01-15T11:12:42 | | vip_address | 198.51.100.11 | | vip_network_id | 9bca13be-f18d-49a5-a83d-9d487827fd16 | | vip_port_id | 69a85edd-5b1c-458f-96f2-b4552b15b8e6 | | vip_qos_policy_id | None | | vip_subnet_id | 5bd7334b-49b3-4849-b3a2-b0b83852dba1 | +---------------------+--------------------------------------+
상태 모니터가 존재하고 제대로 작동하는 경우 각 멤버의 상태를 확인할 수 있습니다. 다음 명령을 사용하여 멤버 ID를 가져옵니다.
- 예제
$ openstack loadbalancer member list pool1작업 멤버(
member1)에는operating_status에 대한ONLINE값이 있습니다.- 예제
$ openstack loadbalancer member show pool1 member1- 샘플 출력
+---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | address | 192.0.2.10 | | admin_state_up | True | | created_at | 2022-01-15T11:11:09 | | id | b85c807e-4d7c-4cbd-b725-5e8afddf80d2 | | name | member1 | | operating_status | ONLINE | | project_id | dda678ca5b1241e7ad7bf7eb211a2fd7 | | protocol_port | 80 | | provisioning_status | ACTIVE | | subnet_id | 5bd7334b-49b3-4849-b3a2-b0b83852dba1 | | updated_at | 2022-01-15T11:12:42 | | weight | 1 | | monitor_port | None | | monitor_address | None | | backup | False | +---------------------+--------------------------------------+