15장. 로드 밸런싱 서비스 문제 해결 및 유지 관리
로드 밸런싱 서비스(octavia)의 기본 문제 해결 및 유지 관리는 상태를 표시하고 인스턴스를 마이그레이션하는 OpenStack 클라이언트 명령을 잘 알고 있으며 로그에 액세스하는 방법을 알고 있습니다. 보다 깊이 문제를 해결해야 하는 경우 하나 이상의 로드 밸런싱 서비스 인스턴스(amphorae)로 SSH를 수행할 수 있습니다.
15.1. 로드 밸런서 확인 링크 복사링크가 클립보드에 복사되었습니다!
로드 밸런서 show 및 list 명령의 출력을 확인하여 로드 밸런싱 서비스(octavia) 및 다양한 구성 요소의 문제를 해결할 수 있습니다.
절차
자격 증명 파일을 가져옵니다.
- 예제
$ source ~/overcloudrc
로드 밸런서(
lb1) 설정을 확인합니다.참고controlPlane 내부의 값은 이 절차의 예제 명령에 사용되는 샘플 값입니다. 이러한 샘플 값을 사이트에 적합한 값으로 바꿉니다.
- 예제
$ openstack loadbalancer show lb1- 샘플 출력
+---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | admin_state_up | True | | created_at | 2022-02-17T15:59:18 | | description | | | flavor_id | None | | id | 265d0b71-c073-40f4-9718-8a182c6d53ca | | listeners | 5aaa67da-350d-4125-9022-238e0f7b7f6f | | name | lb1 | | operating_status | ONLINE | | pools | 48f6664c-b192-4763-846a-da568354da4a | | project_id | 52376c9c5c2e434283266ae7cacd3a9c | | provider | amphora | | provisioning_status | ACTIVE | | updated_at | 2022-02-17T16:01:21 | | vip_address | 192.0.2.177 | | vip_network_id | afeaf55e-7128-4dff-80e2-98f8d1f2f44c | | vip_port_id | 94a12275-1505-4cdc-80c9-4432767a980f | | vip_qos_policy_id | None | | vip_subnet_id | 06ffa90e-2b86-4fe3-9731-c7839b0be6de | +---------------------+--------------------------------------+
이전 단계에서 로드 밸런서 ID(
265d0b71-c073-40f4-9718-8a182c6d53ca)를 사용하여 로드 밸런서와 연결된 amphora의 ID를 가져옵니다.- 예제
$ openstack loadbalancer amphora list | grep 265d0b71-c073-40f4-9718-8a182c6d53ca- 샘플 출력
| 1afabefd-ba09-49e1-8c39-41770aa25070 | 265d0b71-c073-40f4-9718-8a182c6d53ca | ALLOCATED | STANDALONE | 198.51.100.7 | 192.0.2.177 |
이전 단계에서 amphora ID (
1afabefd-ba09-49e1-8c39-41770a25070)를 사용하여 amphora 정보를 봅니다.- 예제
$ openstack loadbalancer amphora show 1afabefd-ba09-49e1-8c39-41770aa25070- 샘플 출력
+-----------------+--------------------------------------+ | Field | Value | +-----------------+--------------------------------------+ | id | 1afabefd-ba09-49e1-8c39-41770aa25070 | | loadbalancer_id | 265d0b71-c073-40f4-9718-8a182c6d53ca | | compute_id | ba9fc1c4-8aee-47ad-b47f-98f12ea7b200 | | lb_network_ip | 198.51.100.7 | | vrrp_ip | 192.0.2.36 | | ha_ip | 192.0.2.177 | | vrrp_port_id | 07dcd894-487a-48dc-b0ec-7324fe5d2082 | | ha_port_id | 94a12275-1505-4cdc-80c9-4432767a980f | | cert_expiration | 2022-03-19T15:59:23 | | cert_busy | False | | role | STANDALONE | | status | ALLOCATED | | vrrp_interface | None | | vrrp_id | 1 | | vrrp_priority | None | | cached_zone | nova | | created_at | 2022-02-17T15:59:22 | | updated_at | 2022-02-17T16:00:50 | | image_id | 53001253-5005-4891-bb61-8784ae85e962 | | compute_flavor | 65 | +-----------------+--------------------------------------+
리스너(
listener1) 세부 정보를 확인합니다.- 예제
$ openstack loadbalancer listener show listener1- 샘플 출력
+-----------------------------+--------------------------------------+ | Field | Value | +-----------------------------+--------------------------------------+ | admin_state_up | True | | connection_limit | -1 | | created_at | 2022-02-17T16:00:59 | | default_pool_id | 48f6664c-b192-4763-846a-da568354da4a | | default_tls_container_ref | None | | description | | | id | 5aaa67da-350d-4125-9022-238e0f7b7f6f | | insert_headers | None | | l7policies | | | loadbalancers | 265d0b71-c073-40f4-9718-8a182c6d53ca | | name | listener1 | | operating_status | ONLINE | | project_id | 52376c9c5c2e434283266ae7cacd3a9c | | protocol | HTTP | | protocol_port | 80 | | provisioning_status | ACTIVE | | sni_container_refs | [] | | timeout_client_data | 50000 | | timeout_member_connect | 5000 | | timeout_member_data | 50000 | | timeout_tcp_inspect | 0 | | updated_at | 2022-02-17T16:01:21 | | client_ca_tls_container_ref | None | | client_authentication | NONE | | client_crl_container_ref | None | | allowed_cidrs | None | +-----------------------------+--------------------------------------+
풀(
pool1) 및 로드 밸런서 멤버를 확인합니다.- 예제
$ openstack loadbalancer pool show pool1- 샘플 출력
+----------------------+--------------------------------------+ | Field | Value | +----------------------+--------------------------------------+ | admin_state_up | True | | created_at | 2022-02-17T16:01:08 | | description | | | healthmonitor_id | 4b24180f-74c7-47d2-b0a2-4783ada9a4f0 | | id | 48f6664c-b192-4763-846a-da568354da4a | | lb_algorithm | ROUND_ROBIN | | listeners | 5aaa67da-350d-4125-9022-238e0f7b7f6f | | loadbalancers | 265d0b71-c073-40f4-9718-8a182c6d53ca | | members | b92694bd-3407-461a-92f2-90fb2c4aedd1 | | | 4ccdd1cf-736d-4b31-b67c-81d5f49e528d | | name | pool1 | | operating_status | ONLINE | | project_id | 52376c9c5c2e434283266ae7cacd3a9c | | protocol | HTTP | | provisioning_status | ACTIVE | | session_persistence | None | | updated_at | 2022-02-17T16:01:21 | | tls_container_ref | None | | ca_tls_container_ref | None | | crl_container_ref | None | | tls_enabled | False | +----------------------+--------------------------------------+
로드 밸런서의 VIP 주소(
192.0.2.177)에 연결하여 리스너가HTTPS또는TERMINATED_HTTPS프로토콜에 대해 구성된 로드 밸런서에서 HTTPS 트래픽 흐름을 확인합니다.작은 정보openstack loadbalancer show <load_balancer_name> 명령을 사용하여 로드 밸런서 VIP 주소를 가져옵니다.참고로드 밸런서 VIP에 대해 구현된 보안 그룹은 필요한 프로토콜 및 포트에 대한 데이터 트래픽만 허용합니다. 따라서 ICMP 트래픽이 차단되므로 로드 밸런서 VIP를 ping할 수 없습니다.
- 예제
$ curl -v https://192.0.2.177 --insecure- 샘플 출력
* About to connect() to 192.0.2.177 port 443 (#0) * Trying 192.0.2.177... * Connected to 192.0.2.177 (192.0.2.177) port 443 (#0) * Initializing NSS with certpath: sql:/etc/pki/nssdb * skipping SSL peer certificate verification * SSL connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 * Server certificate: * subject: CN=www.example.com,O=Dis,L=Springfield,ST=Denial,C=US * start date: Jan 15 09:21:45 2021 GMT * expire date: Jan 15 09:21:45 2021 GMT * common name: www.example.com * issuer: CN=www.example.com,O=Dis,L=Springfield,ST=Denial,C=US > GET / HTTP/1.1 > User-Agent: curl/7.29.0 > Host: 192.0.2.177 > Accept: */* > < HTTP/1.1 200 OK < Content-Length: 30 < * Connection #0 to host 192.0.2.177 left intact