쿠버네티스는 CPU 사용률이나 기타 메트릭을 체크하여 파드의 개수를 스케일링하는 기능인 HPA(Horizontal Pod AutoScaler)로 지정한 메트릭을 컨트롤러가 체크하여 부하에 따라 필요한 레플리카 수가 되도록 자동으로 파드를 늘리거나 줄이는 오토스케일링을 수행한다.
사용 가능한 리소스
관측 가능성 시스템에도 쿠버네티스 오토스케일링을 적용해야 한다.
HPA는 별도의 객체로 정의된다.
[실습] cpu 사용량이 75%가 넘으면 파드를 추가하는 HPA 생성하기
(파드의 최대 개수는 5개이고, pi-web-lab이라는 Deployment가 배포된 상태라고 가정)
apiVersion: autoscaling/v1
kind: horizontalpodautoscaler
metadata:
name: pi-cpu
spec:
scaletargetref:
apiVerison: apps/v1
kind: deployment
name: pi-web-lab
minreplicas: 1
maxreplicas: 5
targetcpuutilizationpercentage: 75
HPA는 15초마다 파드를 하나씩 추가하고 5분이 지날동안 CPU 사용량이 설정값보다 작으면 파드를 감소시킨다.
HPA 버전 2 사용
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 75
behavior:
scaleDown:
stabilizationWindowSeconds: 30 # 측정값이 기준 아래로 내려온 후 30초 대기
policies:
- type: Percent
value: 50
periodSeconds: 15
AWS는 EC2 가상머신을 기반으로 오토스케일링을 제공한다.