- 유투브 영상을 참고해주세요: https://youtu.be/XzGost3KEoI
- 쿠버네티스에서 jmeter cluster를 구축하고 부하 테스트
- jmeter 아키텍처를 알고 있어야 함
- jmeter 설정파일(jmx)을 생성할 수 있어야 함
- 데모 jmeter 설정파일이 scripts/test-jmx.xml에 있음
- JDK: 11(influxdb2 플러그인 요구사항)
- 쿠버네티스: 1.20
- jmter: 5.5(influxdb2 플러그인 요구사항)
쿠버네티스가 있다면 skip
- 쿠버네티스 버전 1.20 사용
- kind cluster 사용(docker 필요)
# 생성
cd kind-cluster
kind create cluster --config cluster.yaml
# 삭제
cd kind-cluster
kind delete cluster --name jmeter-test
- influxDBv2와 grafana를 설치
- helm3 사용
- makefile를 사용하여 helm install을 자동화
- grafana와 influxdb는 persistence를 비활성화(운영환경에서는 persistence volume사용해야 함)
- grafana와 influxdb nodeport를 사용
# helm install influxDB2, grafana
make install
grafana, influxdb가 설치되어 있고 grafana설정이 되어 있다는 전제로 테스트 진행
- echoserver 사용
kubectl apply -n default -f ./echo-server.yaml
kubectl -n default apply -f jmeter-k8s-manifests/
kubectl -n default get po
- 스크립트를 실행하는 순간 pod 쉘이 forground로 실행됨
cd scripts
sh start_loadtest.sh test-jmx.xml
1. ctrl + C로 controller pod forground 중지
2. kubectl delete -f jmeter-k8s-manifests/
1. 기존 부하테스트 중지 (kubectl delete -f jmeter-k8s-manifests/)
2. jmeter controller, worker pod가 없어졌는지 확인
3. 다시 부하테스트 스크립트 실행
- jmeter manifest 삭제
kubectl delete -f jmeter-k8s-manifests/
- grafana, influxdb 삭제
# helm uninstall
make clean -k
- 플러그인 다운로드 링크: https://github.com/mderevyankoaqa/jmeter-influxdb2-listener-plugin/releases
- 플러그인 이동: jmeter/lib/ext 경로로 플러그인 이동
- jmeter influxdb2 backend listener: https://github.com/mderevyankoaqa/jmeter-influxdb2-listener-plugin
- jmeter dockerfile: https://github.com/Kartik-1611/Jmeter_on_GKE/tree/master/Dockerfiles/jmeter-base
- jmeter 구조: https://doqtqu.tistory.com/274
- 과거의 내가 만든 jmeter cluster: https://github.com/choisungwook/portfolio/tree/master/kubernetes/helm/jmeter