Cloud/Kubernates

# k8s Pod Autoscaler 개념

skysoo1111 2019. 10. 23. 13:47

k8s Pod Auto Scaling 이란?

클라우드의 핵심은 리소스 관리이다. 이는 서비스 중인 Application의 리소스가 부족할 때, 쿠버네티스가 이를 스스로 파악하여 적절한 대처(Pod를 늘리는 것, 리소스를 추가 할당 등)를 해주는 것을 말한다.

 

이것을 Auto Scaling이라 부르며, 쿠버네티스에서는 아래 3가지 방안으로 그 기능을 제공한다.

 

1. Horizontal Pod Autoscaler (HPA)

  • HPA는 클러스터의 Pod 복제본 수를 조정
  • Pod 이동은 필요에 따라 함(CPU 또는 사용자 정의 메트릭)
  • 다양한, 외부 및 사용자 정의 메트릭 (metrics.k8s.io, external.metrics.k8s.io 및 custom.metrics.k8s.io)에 따라 포드 (Pod)를 확장하도록 HPA를 구성 할 수 있음

HPA

 

2. Vertical Pod Autoscaler (VPA)

  • 필요에 따라 포드에 CPU 또는 메모리를 추가
  • VPA는 포드의 CPU 및 메모리 리소스를 업데이트 Pod를 다시 시작하여 새로운 Pod 생성

VPA

3. Cluster Autoscaler (CA)

  • 클러스터의 용량이 충분하지 않아 모든 Pod가 실행되지 않고 pending 상태로 유지되는 경우, Node 요청하여 pending 상태인 Pod들 추가된 Node에 할당
  • 클러스터의 노드의 리소스가 일정 기간 동안 충분히 활용되지 않는 경우 Node를 축소

CA

 

 

 

 

 

<참조 사이트>

https://medium.com/magalix/kubernetes-autoscaling-101-cluster-autoscaler-horizontal-pod-autoscaler-and-vertical-pod-2a441d9ad231