Java-Bom / ReadingRecord

📚 책 읽고 정리하기 📚
https://javabom.tistory.com/category/Reading%20Record
473 stars 27 forks source link

[18] HPA #235

Closed csbsjy closed 3 years ago

csbsjy commented 3 years ago

HPA(Horizontal Pod Autoscaler)

파드를 CPU 사용량 기반으로 오토스케일링하는 Object image

모니터링 기본 반복시간

--horizontal-pod-autoscaler-sync-period # default 30sec

쿨 다운 지연시간 옵션

--horizontal-pod-autoscaler-downscale-delay # default 5min

오토스케일링 파드 수 기준

대상 파드 갯수 = (현재 파드의 CPU 사용률을 모두 더한 값/목표 CPU 사용률)을 올림한 값

HPA 설정

apiVersion: autoscaling/v2beta2
kind: HorizontalPodAutoscaler
metadata:
  name: php-apache
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: php-apache # 오토스케일링 지정 Pod name
  minReplicas: 1 # 최소 pod
  maxReplicas: 10 # 최대 pod
  targetCPUUtilizationPercentage: 30 # 30% 이상을 사용하면 오토스케일링 

동일한 CLI

kubectl autoscale deployment php-apache --cpu-percent=30 --min=1 --nax=10

주의해야할 점

kubectl top pods가 정상적으로 pod 의 메트릭을 보여주는데kubectl get hpa의 cpu 가 <unknown> 이면 deployment 설정에 .spec.template.containers[].resources.request.cpu 필드 값이 빠진건 아닌지 확인해야 함