on
쿠버네티스 - 오토스케일링
쿠버네티스 - 오토스케일링
728x90
# 오토스케일링
HPA : 포드의 갯수를 증가 (쿠버네티스가 기본적으로 지원하는 방식)
VPA : 리소스는 증가시키는 방법
CA : 노드를 추가 (클라우드 환경에서 적용 가능)
# 스케일링 자동화 HPA 실습
쿠버네티스 공식 사이트 > 검색 > HPA > 워크스루로 이동
- 샘플코드 활용
kubectl apply -f https://k8s.io/examples/application/php-apache.yaml kubectl get pod -n kube-system
# 스케일링 수행방법
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10 -o yaml --dry-run kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
# hpa 조회
kubectl get hpa kubectl get hpa -w
# 부하발생 테스트
kubectl run -i --tty load-generator --rm --image=busybox --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"
- 코드를 실행하면, 1000000 번의 loop 후에 ok 신호를 찍는 ㅗ코드가 실행된다. 부하 발생기라고 보면 편하다.
# 모니터링하기
새로운 클라우드 쉘을 실행한 다음 kubectl get hpa 를 입력하여 모니터링을 해보자.
- hpa 조회 및 변화 감지
kubectl get hpa -w
- 모니터링을 하면, CPU 사용률 및 Replicas의 수 등의 정보를 확인 할 수 있다.
# ok가 찍히는 소스코드를 정지를 하면 스케일 in이 발생한다.
- 스케일 in이 바로 발생하지 않고 시간 텀을 두고 replicas의 숫자가 줄어든다.
- 늘어나는것은 즉각적으로 발생하나, 줄어드는것은 수분의 시간이 흐른 뒤 스케일 in이 발생하는것을 확인 할 수 있다.
728x90
from http://may9noy.tistory.com/276 by ccl(A) rewrite - 2021-09-26 16:00:53