-
Notifications
You must be signed in to change notification settings - Fork 50
NLB Test Tool Guide
- 선행 가이드 참고
- 현재 시험 항목은 TCP 중심이며, 차주(7/25-7/29) UDP, AddVMs/RemoveVMs 등 추가 예정
- 현재 시험 항목 참고: CB-Spider v0.6.1, NLB 0.4 통합 검증 시험 항목
-
https://github.com/cloud-barista/cb-spider/tree/master/test/nlb-test-curl
. |-- 0.prepare-nginx-nlb-test.sh |-- 0.prepare-nlb-test.sh |-- 1.create-nlb-TCP-22-test-AWS.sh |-- 1.create-nlb-TCP-22-test.sh |-- 1.create-nlb-TCP-23-test-AWS.sh |-- 1.create-nlb-TCP-23-test.sh |-- 1.create-nlb-TCP-80-HTTP-test-GCP.sh |-- 1.create-nlb-TCP-80-test-AWS.sh |-- 1.create-nlb-TCP-80-test.sh |-- 1.create-nlb-TCP-81-test-AWS.sh |-- 1.create-nlb-TCP-81-test.sh |-- 2.list-get-nlb-test.sh |-- 3.get-owner-vpc-nlb-test.sh (서버용) |-- 4.1.addvm-nlb-test.sh |-- 4.2.removevm-nlb-test.sh |-- 5.change-nlb-test.sh (보류) |-- 6.gethealth-nlb-test.sh |-- 7.delete-nlb-test.sh |-- 8.teardown-nlb-test.sh |-- check-nlb-curl-call-test.sh `-- check-nlb-ssh-call-test.sh
- (1) NLB Test 준비 도구: NLB 시험에 필요한 자원 생성/삭제 및 VM nginx 설치/설정 등
- 대상 스크립트: 0.prepare-, 8.teardown-
- (2) NLB 기능 시험 도구: NLB 생성, 정보 제공, VM 추가/제거 및 삭제 등 주요 기능 시험
- 대상 스크립트: 1.create-* ~ 7.delete-*
- (3) NLB 분산 호출 검증 도구: 연속되는 LB 호출에 VM이 분산 호출(교차 선택) 되는 지 확인하는 시험
- 대상 스크립트: check-*
-
(1) 대상 CSP connection config 준비 및 image, Spec 등 시험 환경 설정
- aws 경우: ./aws/setup.env 확인
- aws2와 같이 경로 추가하여 새로운 설정 구성 가능
-
(2) 시험 및 Client 환경
- Spider 서버와 동일 노드에서 모든 시험 실행 필요
- ssh, curl 필요
-
(3) 시험 절차
-
시험 도구 위치로 이동
cd $CBSPIDER_ROOT/test/nlb-test-curl -
시험 환경 준비: VPC/Subnet/SG/Key 2개의 VM 생성(예시: AWS 경우)
./0.prepare-nlb-test.sh aws -
웹 서비스 시험 항목의 경우 다음을 실행하여 대상 VM 모두에 nginx를 설지 및 설정한다.
./0.prepare-nginx-nlb-test.sh aws vm-01 ./0.prepare-nginx-nlb-test.sh aws vm-02 -
NLB 기능 및 분산 호출 검증 시험 실행
- 실행 순서: 시험 항목(프로토콜:포트 설정) 별로 다음 순서로 시험
Create -> List/Get -> Check(Healthy상태, 2VM 교차) -> AddVMs -> Check(Healthy상태, 4VM 교차) -> RemoveVMs -> Check(Healthy상태, 2VM 교차) -> Delete - 시험 항목(프로토콜:포트 설정)에 따라 Create와 Check 실행 스크립트가 달라지며, 나머지는 동일
- 실행 순서: 시험 항목(프로토콜:포트 설정) 별로 다음 순서로 시험
-
############ Create NLB 시험 스크립트 선택 방법 ############
-
검증된 시험 대상 CSP: AWS, Azure, GCP, Alibaba, Tencent, IBM
-
AWS와 GCP는 별도 스크립트 선택 필요
-
OpenStack, Cloudit: 환경 이슈로 미시험
-
[TCP 서비스의 경우], 시험 항목에 맞게 다음 중 하나를 실행합니다. (AWS, GCP 제외)
./1.create-nlb-TCP-22-test.sh ./1.create-nlb-TCP-23-test.sh -
위 실행은 다음 설정으로 NLB를 생성합니다.
* Listener: TCP:22 # 또는 23 * VMGroup: TCP:22 * HealthChecer: TCP:22 - Interval: 10 - Timeout: 9 - Threshold: 3 -
[웹 서비스의 경우], 시험 항목에 맞게 다음 중 하나를 실행합니다. (AWS, GCP 제외)
- 웹 서비스의 경우 웹 서버(nginx) 설치 및 구동 필요 (위
시험 환경 준비참고)
./1.create-nlb-TCP-80-test.sh ./1.create-nlb-TCP-81-test.sh - 웹 서비스의 경우 웹 서버(nginx) 설치 및 구동 필요 (위
-
위 실행은 다음 설정으로 NLB를 생성합니다.
* Listener: TCP:80 # 또는 81 * VMGroup: TCP:80 * HealthChecer: TCP:80 - Interval: 10 - Timeout: 9 - Threshold: 3 -
[AWS의 경우], 시험 항목에 맞게 다음 중 하나를 실행합니다. (Timeout=-1)
$ ls *AWS* 1.create-nlb-TCP-22-test-AWS.sh 1.create-nlb-TCP-80-test-AWS.sh 1.create-nlb-TCP-23-test-AWS.sh 1.create-nlb-TCP-81-test-AWS.sh -
[GCP의 경우], 시험 항목에 맞게 다음 중 하나를 실행합니다. (Listener==VMGroup, HealthCheck=HTTP)
$ ls *GCP* 1.create-nlb-TCP-80-HTTP-test-GCP.sh -
위 실행은 다음 설정으로 NLB를 생성합니다.
* Listener: TCP:80 * VMGroup: TCP:80 * HealthChecer: HTTP:80 - Interval: 10 - Timeout: 9 - Threshold: 3
-
-
############ 부하 분산 시험 Check 스크립트 선택 방법 ############
-
VM에 탑재된 TCP 서비스는 ssh를 이용하고, Web 서비스는 curl을 이용한 호출 시험을 진행합니다.
-
[TCP 서비스 경우], 대상 NLB의 Listener 설정 포트에 따라서 다음 중 하나 실행
./check-nlb-ssh-call-test.sh aws 22 ./check-nlb-ssh-call-test.sh aws 23
-
-
NLB 설정이 실제로 반영 되기 전까지는 check 명령을 실행하면 보통 아무것도 출력이 되지 않습니다.
- NLB 설정 반영에 시간이 좀 걸릴 수 있으며, AWS 경우 약 5분 정도 소요됩니다.
-
혹시, Check 실행 시에 에러 메시지를 확인하고 싶다면
- 다음 파일에서
>(redirection)를 포함한 뒷 부분을 제거하면 확인 가능합니다.vi common/check-nlb-ssh-test.sh
- 다음 파일에서
-
NLB 설정이 제대로 반영되면 SSH 호출의 올바른 출력 예시는 다음과 같습니다. (20회 호출함)
-
2개 VM에 대한 hostname이 교차 출력됩니다.
-
교차 되는 순서는 불규칙적입니다.
./check-nlb-ssh-call-test.sh aws 22 # 또는 23ip-10-0-10-195 ip-10-0-8-198 ip-10-0-10-195 ip-10-0-8-198 ip-10-0-10-195 ip-10-0-8-198 ip-10-0-8-198 ...
-
-
CURL 호출의 올바른 출력 예시(20회 호출함)
-
2개 VM에 대한 Public IP가 출력됩니다.
-
교차 되는 순서는 불규칙적입니다.
./check-nlb-curl-call-test.sh aws 80 # 또는 81<title>Welcome to 18.217.189.175</title> <title>Welcome to 3.144.42.189</title> <title>Welcome to 3.144.42.189</title> <title>Welcome to 3.144.42.189</title> <title>Welcome to 3.144.42.189</title> <title>Welcome to 18.217.189.175</title> <title>Welcome to 18.217.189.175</title> ...
-
-
AddVMs()/RemoveVMs()와 NLB 분산 호출 검증 시험
-
모든 시험 종료시에는 자원 반납 스크립트를 실행합니다.
- VM 삭제 ~ VPC 삭제
./8.teardown-nlb-test.sh aws
-
-
(4) 결과 확인 방법
- NLB 기능 시험: 기능별 시험 스크립트의 출력 결과를 확인한다.
- NLB 분산 호출 검증 시험:
check-nlb-*시험 스크립트의 결과를 확인한다.- 결과 예시
-
[SSH 호출 분산 결과]
ip-10-0-10-195 ip-10-0-8-198 ip-10-0-10-195 ip-10-0-8-198 ip-10-0-10-195 ip-10-0-8-198 ip-10-0-8-198 ... -
[웹 호출 분산 결과]
<title>Welcome to 18.217.189.175</title> <title>Welcome to 3.144.42.189</title> <title>Welcome to 3.144.42.189</title> <title>Welcome to 3.144.42.189</title> <title>Welcome to 3.144.42.189</title> <title>Welcome to 18.217.189.175</title> <title>Welcome to 18.217.189.175</title> ...
-
- 결과 예시
- 시험 날짜:
2022.07.21. - 적용 버전: https://github.com/cloud-barista/cb-spider/tree/308cb762ddcf8be444eb7c9fd18aa0ec67273ed1
- 시험 결과: 다음
| CSP | 기능 시험 | 호출 분산 검증 | 특이 사항 |
|---|---|---|---|
| AWS | OK | OK | Timeout=-1 |
| Azure | OK | OK | |
| GCP | OK | OK | VMGroup Protocol:Port=Listener's, HealthCheck:Only HTTP |
| Alibaba | OK | OK | |
| Tencent | OK | OK | |
| IBM(VPC) | OK | OK | |
| OpenStack | ? | ? | Driver단 시험: 시험 환경 이슈(HealthCheckProbe API 동작 이상) |
| CloudIt | OK | OK | Driver단 시험 |
-
Install & Start Guide
-
Features & Usage
-
- AdminWeb Tool Guide
- CLI Tool Guide
- REST API Guide
- NLI Guide
-
Design
-
Developer Guide
-
Cloud Driver Developer Guide
- Cloud Driver Developer Guide-WIP
- VM SSH Key Development Guide-WIP
- VM User Development Guide
- What is the CSP SDK API Version of drivers
- Region Zone Info and Driver API
- (StartVM TerminateVM) API Call Counts and Waiting
- StartVM and TerminateVM Main Flow of drivers
- VM Root Disk Configuration Guide
- Security Group Rules and Driver API
- Network Load Balancer and Driver API
- VM Snapshot, MyImage and Disk Overview
- Kubernetes and Driver API(PMKS, K8S)
- Tag and Cloud Driver API
- AnyCall API Extension Guide
-
Test Reports
- v0.2.8-for-espresso-release
- v0.3.0-espresso-release
- Azure:Terminating VM
- cb-user@VM: ssh login, sudo run
- v0.3.14 test for SG Source
- v0.4.0-cafemocha-release
- Test via REST API Gateway
- Test Reports of v0.4.11 (IID2 initial Version)
- Test Reports of v0.4.12 (Register & Unregister existing Resources)
- Test Reports for v0.6.0 Release
- How to ...
- How to Use AWS S3 with Credentials
- How to Use Alibaba ECS i1.* Instance Types
- How to provision GPU VMs
- How to Resolve the 'Failed to Connect to Database' Error
- How to test CB Spider with Mock Driver
- How to install CB Spider on WSL2 under 공유기/사설망
- How to install CB Spider on macOS
- How to run CB Spider Container on macOS
- How to install OpenStack on a VM for CB Spider Testing
- How to get Azure available Regions
- How to profile memory usage in Golang
- Deprecated:How to install protoc and plugins
- [For Cloud-Migrator]