본문 바로가기

Kubernetes

[Kubernetes] Autoscaling

반응형

Kubernetes Autoscaling

1. Cluster level scalability : 워커 노드를 확장

2. Pods layer autoscale

 - Horizontal Pod Autoscaler(HPA) : pod가 수평으로 확장

 - Vertical Pods Autoscaler(VPA) : pod의 용량을 수직으로 확장

 

Cluster Autoscaler(CA)

 1. Cluster level scalability

  - GCP, AWS 및 Azure와 같은 클라우드 인프라스트럭처를 통해서 사용 

  - OpenStack의 Auto Scaling Kubernetes 클러스터

 2. Cluster Autoscaler(CA)

  - Pod가 node 리소스를 할당 받지 못해 pending 될 때 worker node를 확장

  - Node Pool의 min/max를 기준으로 그 범위내로 노드 확장

  - 할당된 node가 장시간 충분히 활용되지 못하면 node를 해제

  - 10초마다 불필요한 노드 확인, 10분간 적은 리소스를 유지하면 Scale Down

 

Horizontal Pod Autoscaler(HPA)

 1. Metrics-Server

  - 각 Pod와 Node의 사용량을 모니터링하고 API를 통해 볼 수 있게 제공

 2. Pod의 replicas 수를 관리

  - 구동중인 Pod의 CPU/Memory 사용률을 기반으로 Pod를 Scale-Out

  - 확장/축소할 최소/최대 Pods 수량은 Pods의 Deployment에 의해 제어

 3. HPA 동작 조건

  - HPA는 기본 30초 간격으로 Pod 리소스 사용량을 check HAP에 설정한 임계 값을 초과할 경우 Pod를 확장

  - Scale-out 이후 3분 대기, Scale-in 이후 5분 대기

 

HorizontalPodAutoscaler controls the scale of a Deployment and its ReplicaSet

 

Vertical Pods Autoscaler(VPA)

 1. VerticalPodAutoscaler라는 사용자 정의 리소스 정의

 2. Pod의 리소스를 관리

  - Pod 대한 CPU/Memory 리소스를 추천 

  - Pod 대한 CPU/Memory 리소스를 자동으로 조정

 3.동작방식

  - metric를 10초 간격으로 지속적으로 확인

  - 할당된 CPU/Memory의 임계치를 넘으면 pod 템플릿을 변경하여 Pod의 리소스 할당 값을 변경한 후 Pod를 다시 시작

4. VerticalPodAutoscaler라는 사용자 정의 리소스로 구성

 

 

"일반적으로 Horizontal Pod Autoscaler(HPA) 방법을 많이 요구하고 사용"

 

 

[참고]

- 유투브 따배쿠 강의

반응형

'Kubernetes' 카테고리의 다른 글

[Kubernetes] 로그 관리  (0) 2023.02.23
[Kubernetes] Horizontal Pod Autoscaling 운영  (0) 2023.02.11
[Kubernetes] DNS  (0) 2023.02.09
[Kubernetes] Kubernetes Network  (0) 2023.02.02
[Kubernetes] Persistent Volume V & Persistent Volume Claim  (0) 2023.02.02