Autoscaler
쿠버네티스는 리소스 부족 현상을 해결하기 위해 사용
용도에 따라 몇 가지 오토 스케일러를 제공
- HPA(Horizontal Pod Autoscaler)
- VPA(Vertical Pod Autoscaler)
- CA(Cluster Autoscaler)
1. HPA
- 수평적 증/감
- Pod의 리소스 상태를 감지하면서 트래픽이 증가하면 Pod의 갯수를 증가(Scale Out)하여 트래픽을 분산
- 다시 트래픽이 감소하면 생성된 Pod를 삭제(Scale In)
- 기동이 빨라야하는 App에 사용 -> 장애 복구를 위한 기능이기 때문에 App 자체의 기동이 빨라야함
- Stateless의 경우에만 사용
- StateFul의 경우에는 어떤 Pod를 Scale Out 해야하는 지 모르기 때문 -> 사용하기 어려움
2. VPA
- 수직적 증/감
- Pod의 리소스 상태를 감지, 위험한 상태에 Pod를 재가동하면서 리소스를 증가(Scale Up)
- 리소스가 안정화(기준 이하) 리소스를 감소(Scale Down)
- Stateful일 때 사용
- 하나의 Controller에 HPA와 함께 사용 불가능 -> 둘 다 작동 X
3. CA
- Local에 모든 Worker Node에서 리소스가 소모되었을 경우 Cloud에 요청하여 Cloud Provider에 Worker Node와 Pod를 생성
- Local에 여유자원이 생기면 Scheduler가 노드를 삭제하도록 요청, Cloud Provider에 있는 노드가 삭제되고 Pod가 로컬 노드로 옮겨짐
* 이러한 3개의 Auto Scaler가 존재하며, 이 중 대중적으로 쓰이는 HPA에 대해 다룸
HPA의 구성
minReplicas : 최소 Replicas 갯수
maxReplicas : 최대 Replicas 갯수
type : 리소스 타입 지정 ex) resource
name : HPA를 구성할 리소스(CPU, Mem 등) 판단 조건을 위한 리소스
target.type : 어떤 조건으로 증가 시킬지(일반적으로 utilization)
target.averageUtilization : Pod의 requests를 기준으로 Pod의 평균자원량, 초과시 증가
'CICD' 카테고리의 다른 글
docker-compose (0) | 2023.04.08 |
---|---|
Docker와 DockerFile (2) | 2023.04.08 |
[Kubernetes] Ingress(Controller) (0) | 2022.02.08 |
[Kubernetes] StatefulSet(Controller) (0) | 2022.02.08 |
[Kubernetes] RBAC, Role, RoleBinding(Authorization) (0) | 2022.01.30 |
댓글