Autoscaling Service
HPA(Horizontal Pod AutoScaler)
- CPU 사용량 또는 사용자 정의 메트릭을 관찰하여 파드 개수를 자동으로 스케일링
Cluster Autoscaler- EKS 클러스터 자체 자원이 모자라게 되는 경우
HPA(Horizontal Pod Autoscaler)
컨트롤러쿠버네티스 metrics server
를 생성
Metrics Server
: 쿠버네티스 클러스터 전체의 리소스 사용 데이터를 집계함flask-deployment.yaml
파일을 수정
cd /home/ec2-user/environment/manifests
cat <<EOF> flask-deployment.yaml
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-flask-backend
namespace: default
spec:
replicas: 1
selector:
matchLabels:
app: demo-flask-backend
template:
metadata:
labels:
app: demo-flask-backend
spec:
containers:
- name: demo-flask-backend
image: $ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/demo-flask-backend:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
resources:
requests:
cpu: 250m
limits:
cpu: 500m
EOF
flask-deployment.yaml
파일을 적용하여 변경 사항 반영
HPA를 설정하기 위해 flask-hpa.yaml
파일 생성
cat <<EOF> flask-hpa.yaml
---
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: demo-flask-backend-hpa
namespace: default
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: demo-flask-backend
minReplicas: 1
maxReplicas: 5
targetCPUUtilizationPercentage: 30
EOF
flask-hpa.yaml
파일 반영
HPA 상태 확인
파드의 변화량 파악
Cloud9
에서 새로운 터미널을 추가로 생성하여 부하 테스트 진행
siege
도구를 통해 HTTP 부하 테스트 수행