쿠버네티스(k8s)

쿠버네티스에서 HPA와 VPA를 동시에 사용하면 안 되는 이유

curiousKidd 2024. 8. 14. 11:01
반응형

쿠버네티스는 자동화된 자원 관리를 통해 애플리케이션의 확장성과 안정성을 유지할 수 있는 다양한 기능을 제공합니다. 그중에서도 Horizontal Pod Autoscaler (HPA) Vertical Pod Autoscaler (VPA)는 각각의 역할에 따라 파드의 수와 리소스를 자동으로 조절해줍니다. 하지만 이 두 기능을 동시에 사용하면 예상치 못한 충돌이 발생할 수 있습니다. 이 블로그에서는 HPA와 VPA의 역할과 함께, 이들이 충돌하는 이유에 대해 알아보겠습니다.

1. HPA와 VPA의 역할

1.1. Horizontal Pod Autoscaler (HPA)

  • HPA의 기능: HPA는 파드의 수를 자동으로 조절하는 기능입니다. 예를 들어, 애플리케이션의 CPU 사용량이 특정 임계치를 초과하면 HPA는 더 많은 파드를 생성하여 부하를 분산시킵니다. 반대로 부하가 줄어들면 불필요한 파드를 줄여 자원을 절약합니다.
  • 사용 시점: 트래픽 증가나 부하 변화에 따라 파드의 수를 늘리거나 줄여야 할 때 사용합니다.

1.2. Vertical Pod Autoscaler (VPA)

  • VPA의 기능: VPA는 파드 자체의 리소스 요청(예: CPU, 메모리)을 자동으로 조절하는 기능입니다. 파드의 리소스 사용량을 모니터링하고, 필요에 따라 파드에 할당된 자원을 조정하여 리소스 활용을 최적화합니다.
  • 사용 시점: 파드의 리소스 요청이 비효율적이거나 리소스 사용량이 일정하지 않을 때 사용합니다.

2. HPA와 VPA를 동시에 사용할 때의 문제점

HPA와 VPA는 각각 파드의 수와 리소스를 자동으로 조절하는 중요한 기능이지만, 이 두 기능을 동시에 사용하면 다음과 같은 충돌이 발생할 수 있습니다:

  • HPA의 의존성: HPA는 파드의 리소스 사용량(CPU나 메모리)을 기반으로 작동합니다. 예를 들어, 파드의 CPU 사용량이 일정 임계치를 초과하면 HPA는 파드의 수를 늘리게 됩니다.
  • VPA의 리소스 조정: VPA는 파드의 리소스 요청량을 변경합니다. VPA가 파드의 CPU 요청량을 증가시키면, HPA는 이를 기반으로 파드 수를 결정하게 되는데, 이로 인해 HPA의 작동 로직이 영향을 받을 수 있습니다. 결과적으로 VPA가 리소스를 조정하면서 HPA의 판단에 혼란을 줄 수 있습니다.
  • 상호작용의 불안정성: HPA와 VPA는 각각 리소스 조정과 파드 수 조정을 시도하기 때문에, 이 두 기능이 상호작용하는 과정에서 예상치 못한 결과가 발생할 수 있습니다. 예를 들어, VPA가 리소스 요청을 변경한 후 HPA가 파드 수를 잘못 조정하는 경우가 발생할 수 있습니다.

3. 해결 방법

HPA와 VPA를 동시에 사용하고 싶다면, 특정 설정을 통해 충돌을 최소화할 수 있습니다.

예를 들어, VPA의 리소스 요청만 조정하고, 실제 리소스 할당을 자동으로 변경하지 않도록 설정하여 HPA의 작동에 영향을 미치지 않게 할 수 있습니다. 그러나 일반적으로는 HPA와 VPA를 동시에 활성화하지 않는 것이 가장 바람직합니다.

동시에 사용하게 되면, 작동하지 않는다는 강의를 듣게 되어서 수정하였습니다

강의 내용 : https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88/dashboard

 

대세는 쿠버네티스 [초급~중급] 강의 | 일프로 - 인프런

일프로 | 쿠버네티스는 앞으로 어플리케이션 배포/운영에 주류가 될 기술 입니다. 이 강좌를 통해 여러분도 대세에 쉽게 편승할 수 있게 됩니다., 현존 최고의 앱 운영 및 배포 기술, 쿠버네티스

www.inflearn.com

> 섹션7 : Autoscaler - HPA 

4. 권장 사용 방법

  • HPA를 사용하는 경우: 파드의 수를 자동으로 조절하고, 파드의 리소스 요청은 수동으로 설정하는 방식으로 활용합니다.
  • VPA를 사용하는 경우: 파드의 리소스 요청을 자동으로 조절하고, 파드 수는 고정하거나 수동으로 관리하는 것이 좋습니다.

5. 결론

쿠버네티스의 HPA와 VPA는 각각 파드의 수와 리소스를 효율적으로 관리할 수 있는 강력한 도구입니다. 하지만 이 두 기능을 동시에 사용하면 상호작용에 의해 예상치 못한 충돌이 발생할 수 있으므로, 각각의 상황에 맞게 독립적으로 사용하는 것이 가장 효과적입니다.

반응형