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분 대기
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 |