본문으로 건너뛰기

HPA 구성

현재 클러스터에는 Horizontal Pod Autoscaling을 활성화하는 리소스가 없습니다. 다음 명령으로 확인할 수 있습니다:

~$kubectl get hpa -A
No resources found

이 경우 ui 서비스를 사용하여 CPU 사용량을 기반으로 스케일링하겠습니다. 먼저 ui Pod 사양을 업데이트하여 CPU requestlimit 값을 지정하겠습니다.

~/environment/eks-workshop/modules/autoscaling/workloads/hpa/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: ui
spec:
template:
spec:
containers:
- name: ui
resources:
limits:
cpu: 250m

다음으로, HPA가 워크로드를 스케일링하는 방법을 결정하는 데 사용할 파라미터를 정의하는 HorizontalPodAutoscaler 리소스를 생성해야 합니다.

~/environment/eks-workshop/modules/autoscaling/workloads/hpa/hpa.yaml
apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
name: ui
namespace: ui
spec:
minReplicas: 1
maxReplicas: 4
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: ui
targetCPUUtilizationPercentage: 80
A

항상 최소 1개의 replica를 실행합니다

B

4개 이상의 replica로 스케일링하지 않습니다

C

HPA에게 ui Deployment의 replica 수를 변경하도록 지시합니다

D

목표 CPU 사용률을 80%로 설정합니다

이 구성을 적용해 보겠습니다:

~$kubectl apply -k ~/environment/eks-workshop/modules/autoscaling/workloads/hpa