HorizontalPodAutoscaler의 behavior 필드 중 stabilizationWindowSeconds 값이 Kubernetes 코드에서 어떻게 사용되는지 분석
코드 분석
horizontal.go 파일에는 HPA 스케일링 로직을 담당하는 핵심 기능들이 포함되어 있습니다. 특히 stabilizationWindowSeconds 값이 스케일 다운 안정화 기간을 어떻게 제어하는지 확인.
파일 구조 및 핵심 함수:
주요 기능이 구현된 함수:
computeDesiredReplicasstabilizeRecommendation
behavior필드에 따른 스케일 업/다운 로직은computeDesiredReplicas함수에서 처리
스케일 다운 로직 분석:
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