11.18. 쿠키를 사용하여 기존 프로덕션 사이트에서 A-B 테스트 구성
7 계층(L7) 정책이 포함된 RHOSP(Red Hat OpenStack Platform) 로드 밸런싱 서비스(octavia)를 사용하여 프로덕션 웹 사이트에 A-B 테스트를 구성하거나 분할 테스트를 수행할 수 있습니다.
이 예에서 "B" 버전으로 라우팅되는 웹 클라이언트는 사이트 사이트_version 을 풀의 멤버 서버에 의해 (pool1)에 의해 B 로 설정합니다.
사전 요구 사항
- 두 개의 생산 웹사이트(사이트 A 및 사이트 B).
"풀의 시작 경로에 따라 요청 재지정"에 대한 지침에 따라 HTTP 로드 밸런서를 구성했습니다. 필수 구성의 요약은 다음과 같습니다.
-
로드 밸런서(
lb1)의 리스너(리스너1). -
/js 또는 /images로 시작하는 URL이 있는 HTTP 요청은 풀(static_pool)으로 전송됩니다. -
기타 모든 요청은 리스너 기본 풀(
pool1)으로 전송됩니다. - 구성에 대한 자세한 내용은 11.12절. “풀에 대한 시작 경로를 기반으로 요청 리디렉션” 을 참조하십시오.
-
로드 밸런서(
절차
자격 증명 파일을 가져옵니다.
예제
$ source ~/overcloudrc로드 밸런서(
lb1)에서 세 번째 풀(pool_B)을 만듭니다.참고괄호 안의 값은 이 절차의 예제 명령에 사용되는 샘플 값입니다. 이러한 샘플 값을 사이트에 적합한 값으로 바꿉니다.
예제
$ openstack loadbalancer pool create --lb-algorithm ROUND_ROBIN --loadbalancer lb1 --name pool_B --protocol HTTP프라이빗 서브넷(
private_subnet)에 로드 밸런서 구성원및 192.0.2.51)을 풀((192.0.2.50pool_B)에 추가합니다.예제
$ openstack loadbalancer member create --address 192.0.2.50 --protocol-port 80 --subnet-id private_subnet pool_B $ openstack loadbalancer member create --address 192.0.2.51 --protocol-port 80 --subnet-id private_subnet pool_B로드 밸런서(
lb1)에서 네 번째 풀(static_pool_B)을 만듭니다.예제
$ openstack loadbalancer pool create --lb-algorithm ROUND_ROBIN --loadbalancer lb1 --name static_pool_B --protocol HTTP프라이빗 서브넷(
private_subnet)에 로드 밸런서 구성원(192.0.2.)을 풀(100및 192.0.2.101static_pool_B)에 추가합니다.예제
$ openstack loadbalancer member create --address 192.0.2.100 --protocol-port 80 --subnet-id private_subnet static_pool_B $ openstack loadbalancer member create --address 192.0.2.101 --protocol-port 80 --subnet-id private_subnet static_pool_B리스너(리스너1)
에 L7 정책( policy2)을 만듭니다.정책에는 작업(REIRECT_TO_POOL)이 포함되어야 하며 풀(static_pool_B)을 가리켜야 합니다. 위치에 정책을 삽입합니다.1.예제
$ openstack loadbalancer l7policy create --action REDIRECT_TO_POOL --redirect-pool static_pool_B --name policy2 --position 1 listener1정규 표현식을 사용하여 요청 경로 시작
시2)에 L7 규칙을 추가합니다./js 또는 /images와 일치하는 정책( policy예제
$ openstack loadbalancer l7rule create --compare-type REGEX --type PATH --value '^/(js|images)' policy2쿠키(
site_version)와 일치하는 두 번째 L7 규칙을 정확한 문자열(B)에 추가합니다.예제
$ openstack loadbalancer l7rule create --compare-type EQUAL_TO --key site_version --type COOKIE --value B policy2리스너(리스너1)
에 L7 정책( policy3)을 만듭니다.정책에는 작업(REIRECT_TO_POOL)이 포함되어야 하며 풀(pool_B)을 가리켜야 합니다. 위치에 정책을 삽입합니다.2.예제
$ openstack loadbalancer l7policy create --action REDIRECT_TO_POOL --redirect-pool pool_B --name policy3 --position 2 listener1쿠키(
site_version)와 일치하는 정책( policy3)에 L7 규칙을 정확한 문자열(B)에 추가합니다.예제
$ openstack loadbalancer l7rule create --compare-type EQUAL_TO --key site_version --type COOKIE --value B policy3참고규칙이 True로 평가되는 첫 번째 정책은 작업이 따르는 정책이므로 L7 정책을 가장 낮은 위치에 할당하는 것이 중요합니다. 이 절차에서는 요청이 잘못된 풀로 전송되지 않도록
policy3 전에 policy2를 평가해야 합니다.
검증
-
openstack loadbalancer l7policy list명령을 실행하고 정책,policy2 및 policy3이 있는지 확인합니다. openstack loadbalancer l7rule list <l7policy>명령을 실행하고 각 정책에 대해비교 유형STARTS_WITH가 있는 규칙이 있는지 확인합니다.예제
$ openstack loadbalancer l7rule list policy2 $ openstack loadbalancer l7rule list policy3