[쿠버네티스] Helm 차트의 Resource와 Autoscaling

2024. 2. 5. 20:29개발로그/쿠버네티스

반응형

쿠버네티스에 Deployment를 위한 설정 중 Resource와 Autoscaling에 대해 정리 합니다.

 

Resources

  • 파드에 할당할 CPU와 메모리 리소스의 최소, 최대 한계를 정의
  • 파드가 사용 할 수 있는 리소스의 양을 제한하여, 리소스의 과도한 사용을 방지하고, 다른 파드와의 리소스 경쟁을 최소화 하는데 도움을 줌

Resources 설정 예제는 아래와 같습니다.

resources:
  requests:
    memory: "64Mi"
    cpu: "250m"
  limits:
    memory: "128Mi"
    cpu: "500m"
  • requests
    • 파드가 시작될 때 요청하는 리소스의 양
    • 이 값을 기반으로 쿠버네티스 스케줄러는 파드를 적절한 노드에 배치
  • limits
    • 파드가 사용할 수 있는 리소스의 최대 한계
    • 이 한계를 초과하는 리소스 사용은 제한 됨

Autoscaling

  • HPA(Horizontal Pod Autoscaler)의 자동 스케일링 정책을 설정
  • 특정 조건(예: CPU 사용량, 메모리 사용량)에 따라 파드의 인스턴스 수를 자동으로 조정 함
autoscaling:
  enabled: true
  minReplicas: 1
  maxReplicas: 100
  targetCPUUtilizationPercentage: 80
  targetMemoryUtilizationPercentage: 80
  • enabled
    • 자동 스케일링을 활성화/비활성화
  • minReplicas
    • 자동 스케일링을 통해 유지 할 수 있는 파드의 최소 인스턴스 수
  • maxReplicas
    • 자동 스케일링을 통해 유지 할 수 있는 파드의 최대 인스턴스 수
  • targetCPUUtilizationPercentage
    • HPA가 파드를 스케일링하기 시작하는 CPU 사용률의 목표치
    • 예를 들어 이 값이 80이라면 CPU 사용률이 80%에 도달했을 때 파드의 인스턴스 수를 증가
      • 80%는 파드가 할당 받은 CPU 리소스 대비 사용 중인 CPU의 비율을 의미
      • 예를 들어 CPU 요청량이 250m으로 설정되어 있고, targetCPUUtilizationPercentage 값이 80%로 설정되어 있는 경우, 해당 파드는 200m(250m의 80%)의 사용량에 도달했을 때 HPA에 의해 스케일링 됨
  • targetMemoryUtilizationPercentage
    • 메모리 사용률에 따른 자동 스케일링을 위한 설정
    • 메모리 사용률의 목표치를 지정
반응형