HorizontalPodAutoscaler의 behavior 필드 중 stabilizationWindowSeconds 값이 Kubernetes 코드에서 어떻게 사용되는지 분석

코드 분석

horizontal.go 파일에는 HPA 스케일링 로직을 담당하는 핵심 기능들이 포함되어 있습니다. 특히 stabilizationWindowSeconds 값이 스케일 다운 안정화 기간을 어떻게 제어하는지 확인.

  1. 파일 구조 및 핵심 함수:

    • 주요 기능이 구현된 함수:

      • computeDesiredReplicas

      • stabilizeRecommendation

    • behavior 필드에 따른 스케일 업/다운 로직은 computeDesiredReplicas 함수에서 처리

  2. 스케일 다운 로직 분석:

    • computeDesiredReplicas 함수 내에서 스케일 다운 로직이 어떻게 작동하는지 확인하기 위해 stabilizationWindowSeconds 값이 사용되는 부분을 조사.

    • 스케일 다운 로직은 stabilizeRecommendation 함수에서 stabilizationWindowSeconds 값을 활용하여 안정화 기간을 설정.

코드 분석 보고서

1. 분석 보고서: stabilizationWindowSeconds 값 사용 방식

stabilizationWindowSeconds 값 사용 코드

  • horizontal.go 파일 내 computeDesiredReplicas 함수 및 stabilizeRecommendation 함수에서 사용.

  • computeDesiredReplicas 함수:

    • horizontal.go의 약 800번째 줄에 정의되어 있다.

    • stabilizeRecommendation 함수를 호출하여 안정화 기간에 따른 파드 수를 조정.

kubernetes/pkg/controller/podautoscaler/horizontal.go의 주요 코드 발췌:

stabilizeRecommendation 함수 구현 코드:

  • stabilizeRecommendation 함수는 stabilizationWindowSeconds 값에 따라 스케일 다운 안정화 기간을 제어.

요약:

  • stabilizationWindowSeconds 값은 computeDesiredReplicas 함수에서 stabilizeRecommendation 함수로 전달.

  • stabilizeRecommendation 함수는 안정화 기간 내에 결정된 파드 수를 유지하기 위해 이전의 스케일 다운 이벤트 이후 안정화 기간을 계산.

예시 매니페스트: stabilizationWindowSeconds 값을 활용한 HorizontalPodAutoscaler 매니페스트

Last updated