본문 바로가기

테스트/Jmeter + Hiper-V + Kubernetes 부하 테스트

Jmeter로 부하를 발생시켜 쿠버네티스 hpa를 활성화, Scale-Out/In 과정을 살펴보자

728x90
반응형

# 테스트 구성도

1. 구성환경 설명

# 접속 환경
- 접속 URL : Nodeport로 구성되어 있으며, 접속 url은 [node의 ip주소]:[svc 서비스 포트]
- MasterNode : 192.168.137.50:31048 > php/Apache 웹서버 (부하 발생시 해당 서버에 부하를 발생 시켜야 WorkerNode1,2번으로 LB가 됨.)
- WorkerNode-01 : 192.168.137.105:31048 > php/Apache 웹서버

- WorkerNdoe-02 : 192.168.137.254:31048 > php/Apache 웹서버

# 부하 발생기
- Apache Jmeter tool 활용 (TPS 등 부하 테스트)

# 웹서버
- pod nginx 3개 생성

# HPA 조건
- CPU 사용량이 50% 이상 발생 시 pod가 최대 10개까지 증가

- 여기서 CPU 사용량이란, pod들의 전체 사용량을 평균으로 CPU 사용량이 50% 이상 발생 시 스케일 아웃 발생

2. 부하 테스트 진행

# Jmeter 테스트 환경 생성

2021.03.09 - [부하테스팅/Jmeter] - Jmeter를 활용한 부하테스트 (상)

 

Jmeter를 활용한 부하테스트 (상)

http://jmeter.apache.org/download_jmeter.cgi 해당 URL에서 Binaries에 있는 zip 파일 다운로드 후 압축풀기 압축해제한 폴더의 bin폴더로 들어간 후 (ex)C:\util\apache-jmeter-5.3\bin) jmeter.bat 파일 실행..

may9noy.tistory.com

2021.10.24 - [부하테스팅/Jmeter] - Jmeter를 활용한 부하테스트 (하)

 

Jmeter를 활용한 부하테스트 (하)

# Jmeter를 활용하여 EC2 인스턴스 부하 테스팅을 진행해보자. Jmeter 말고, 간단한 부하 테스팅 툴로도 얼마든지 테스트가 가능하기는 하다. 하지만 Jmeter의 추가적인 플러그인과 GUI를 활용한 부하

may9noy.tistory.com

# nginx pod 3개 생성 확인 및 Hpa 적용

2021.09.26 - [Kubernetes & Docker/Kubernetes (쿠버네티스)] - 쿠버네티스 - 오토스케일링 #

 

쿠버네티스 - 오토스케일링 #

# 오토스케일링 HPA : 포드의 갯수를 증가 (쿠버네티스가 기본적으로 지원하는 방식) VPA : 리소스는 증가시키는 방법 CA : 노드를 추가 (클라우드 환경에서 적용 가능) # 스케일링 자동화 HPA 실습 쿠

may9noy.tistory.com

# Jmeter를 활용한 부하 테스트 수행, hpa 및 Scale-In, Out 모니터링

- 부하 시작 > node의 CPU 현황 파악

k8s-master-node@k8smasternode-Virtual-Machine:~/yaml/metrics-server$ kubectl top nodes
NAME                              CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
k8smasternode-virtual-machine     147m         7%     1385Mi          76%
k8sworkernode01-virtual-machine   2005m        100%   1156Mi          63%
k8sworkernode02-virtual-machine   581m         29%    1096Mi          60%

- pod 부하 현황 파악

k8s-master-node@k8smasternode-Virtual-Machine:~/yaml/metrics-server$ kubectl top pod
NAME                         CPU(cores)   MEMORY(bytes)
php-apache-d4cf67d68-68dcm   213m         31Mi
php-apache-d4cf67d68-7n7kt   218m         34Mi
php-apache-d4cf67d68-bl84n   513m         40Mi
php-apache-d4cf67d68-d94zx   207m         28Mi
php-apache-d4cf67d68-gzqmj   225m         30Mi
php-apache-d4cf67d68-lhrg2   218m         31Mi
php-apache-d4cf67d68-m9m4n   210m         30Mi
php-apache-d4cf67d68-qnzqb   212m         38Mi
php-apache-d4cf67d68-rml6k   222m         36Mi
php-apache-d4cf67d68-rqc8d   218m         31Mi

- hpa 의 현황 파악 > 부하가 증가하면서 pod가 자동적으로 증가

k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl get hpa
NAME         REFERENCE               TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
php-apache   Deployment/php-apache   0%/50%    1         10        1          4m21s
k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl get hpa -w
NAME         REFERENCE               TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
php-apache   Deployment/php-apache   0%/50%    1         10        1          4m26s
php-apache   Deployment/php-apache   222%/50%   1         10        1          4m31s
php-apache   Deployment/php-apache   222%/50%   1         10        4          4m46s
php-apache   Deployment/php-apache   192%/50%   1         10        5          5m1s
php-apache   Deployment/php-apache   203%/50%   1         10        8          5m16s
php-apache   Deployment/php-apache   127%/50%   1         10        10         5m31s
php-apache   Deployment/php-apache   118%/50%   1         10        10         5m46s
php-apache   Deployment/php-apache   111%/50%   1         10        10         6m1s
php-apache   Deployment/php-apache   119%/50%   1         10        10         6m16s
php-apache   Deployment/php-apache   121%/50%   1         10        10         6m31s

- Jmeter 결과 보고 > 12분53초 동안 테스트

- Summary Report
- 에러율은 2.85% 가 발생(전체 접속중에 2.85%는 커넥션 fail이 됐다는 의미겠지...)

- Active Threads Over Time

- Response Times Over Time

- Transactions per Second

- 모든 부하 테스트가 종료되고 hpa가 다시 Scale-In 되었는지 확인 > 다시 1개로 줄어듬

k8s-master-node@k8smasternode-Virtual-Machine:~$ kubectl get hpa
NAME         REFERENCE               TARGETS   MINPODS   MAXPODS   REPLICAS   AGE
php-apache   Deployment/php-apache   0%/50%    1         10        1          22m

- 부하를 발생하여 자동적으로 hpa를 활용하여 pod를 10개까지 증가시켜 부하를 분산시키고, 다시 부하가 줄었을때, pod가 1개로 줄어드는것을 확인 하였다.

- 다음에는 더 많은 부하와 리소스를 가지고 테스트를 해보자...

728x90
반응형