HPA(Horizontal Pod Autoscaler)
- HPA가 Pod의 리소스 상태를 감지하고 있다가 Controller(아마 ReplicaSet일 것)의 replicas를 수정한다.(Scale Out / Scale In)
- 장애를 방지하기 위해서, 기동이 빠르게 되는 App에 사용을 권장한다.
- Stateless App에 사용해야한다. Stateful하면 어떤 App을 늘려야하는지 알 수 없기 때문이다.
-
각 옵션 사용 방법
target
: 타겟 컨트롤러 지정(예컨대 Deployment)maxReplicas
/minReplicas
: 리플리카 수 최대/최소 지정metrics
: “어떤 매트릭 정보”의 “어떤 조건”을 통해 replicas를 변경할 건지 정하는 부분
- 프로메테우스를 설치하면 이런 Resource 말고도 예컨대 Pod로 들어오는 Packet수라는지 등을 기준으로 HPA가 가능해진다.
VPA(Vertical Pod Autoscaler)
- HPA처럼 스케일아웃이 아니라, VPA는 스케일업을 해주는 것이다.
- Stateful App에 대해 사용한다.
- 한 Controller에서 VPA를 쓸 때에는 HPA와 함께 쓸 수는 없다.
CA(Cluster Autoscaler)
- 워커 Node 차원에서 Scale Out, Scale In을 해주는 것이다.
- 참고로 Scale In 때, 추가되었던 Node를 기존 Node로 옮겨준다.
[참고자료]
https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88