728x90
반응형
# 오토스케일링
HPA : 포드의 갯수를 증가 (쿠버네티스가 기본적으로 지원하는 방식)
VPA : 리소스는 증가시키는 방법
CA : 노드를 추가 (클라우드 환경에서 적용 가능)
# 스케일링 자동화 HPA 실습
쿠버네티스 공식 사이트 > 검색 > HPA > 워크스루로 이동
- 샘플코드
apiVersion: apps/v1
kind: Deployment
metadata:
name: php-apache
spec:
selector:
matchLabels:
run: php-apache
replicas: 1
template:
metadata:
labels:
run: php-apache
spec:
containers:
- name: php-apache
image: k8s.gcr.io/hpa-example
ports:
- containerPort: 80
resources:
limits:
cpu: 500m
requests:
cpu: 200m
---
apiVersion: v1
kind: Service
metadata:
name: php-apache
labels:
run: php-apache
spec:
ports:
- port: 80
selector:
run: php-apache
- 샘플코드 활용
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
반응형
'⭐ Kubernetes & EKS > 오토스케일링 (HPA, CA)' 카테고리의 다른 글
ClusterAutoscaler 생성 및 테스트 (Part.1) (0) | 2023.02.08 |
---|---|
쿠버네티스 애플리케이션 동작구조와 HTTP 서버 스케일링 테스트 (0) | 2021.09.05 |