반응형
HPA (Horizontal Pod AutoScaler)
- HPA를 Controller에 연결하면 HPA가 해당 Controller의 Pod 자원 사용량을 체크
- 임계치 이상 자원을 사용하면 Controller의 replicas를 늘려 Pod을 scale out 시킴
- 적절한 조건
- 기동이 빠르게 되는 App에 적용해야 함
- Stateless App에 적용해야 함
동작 원리
- Node마다 존재하는 Resource Estimator인 cAdvisor가 Container 리소스 사용량을 체크하고 kubelet은 cAdvisor로부터 리소스 정보를 수집
- metrics server(Pod)를 설치하면 각 Node의 kubelet으로부터 리소스 사용량을 종합하여 수집
- metrics server는 control plane의 kube-apiserver에 Resource API를 저장
- HPA는 kube-apiserver의 Resource API를 15초(default)마다 체크
- 리소스 사용량이 높아지면 replicaSet의 replicas를 증가시킴
HPA 요소
옵션 | 설명 | 비고 |
target | 리소스 체크할 Deployment(replicaSet) 지정 | |
maxReplicas | 최대 replicas 갯수 | |
minReplicas | 최소 replicas 갯수 | |
metrics.type.Resouce | 리소스 사용량 | |
metrics.type.Pods | pod와 관련된 정보 | addons 플러그인 필요 |
metrics.type.Object | 다른 자원의 사용량 | addons 플러그인 필요 |
metrics.type.name | 체크할 리소스 종류 | cpu, memory |
metrics.type.target.type | HPA를 작동시킬 리소스 사용 기준 | Utilization, AverageValue, Value |
VPA (Vertical Pod Autoscaler)
- VPA를 Controller에 연결하면 VPA가 해당 Controller의 Pod 자원 사용량을 체크
- 임계치 이상 자원을 사용하면 Pod의 자원 할당량을 늘려 Scale up 시킴
- 적절한 조건
- Stateful App에 적용
- HPA와 함께 사용하면 안됨
CA (Cluster Autoscaler)
- Scheduler가 어떤 Node에도 Pod을 추가할 수 없을 때 연결된 CA에게 생성 요청
- CA는 사전에 연결된 Cloud Provider에 Node를 추가로 생성하여 Pod 생성 가능하도록 함
- 기존 Node에 자원 여유가 생기면 CA가 만들었던 Node를 삭제하고 생성한 Pod을 기존 Node로 이동
반응형
'Kubernetes' 카테고리의 다른 글
Authentication / Authorization (0) | 2023.02.09 |
---|---|
Controller (0) | 2023.02.08 |
Ingress (0) | 2023.02.08 |
StatefulSet (0) | 2023.02.08 |
DaemonSet, Job, CronJob (0) | 2023.02.08 |