Pod를 직접 생성할 경우, 비효율, 삭제/장애 발생 시 자동 복구 X, so ReplicaSet 사용하여 Pod 관리.
- 정해진 수의 동일한 Pod가 항상 실행되도록 관리
- Label Selector의 조건에 따라 파드를 선택하고, 실행중인 Pod의 수가 부족한 경우, 새로운 Pod를 추가하고, 많을 때는 그 수를 줄임
- Node 장애 등의 이유로 Pod를 사용할 수 없으면, ReplicaSet은 새로운 Pod를 생성해서 원하는 수의 인스턴스를 유지
- Deployment에 의해 생성되고, 직접 ReplicaSet을 생성하거나 업데이트 하지 않는 것이 좋다.
Deployment를 사용하면, ReplicaSet의 버전관리뿐만 아니라, 다양한 롤링 업데이트, 앱 배포 후 롤 백할 수 있기 때문에 ReplicaSet보다 Deployment를 사용하는 것이 좋다.
- ReplicaSet과 다른 기능이 아닌, Deployment가 ReplicaSet을 관리해 앱 배포를 더 세밀하게 관리하는 것.
- Deployment에서 이미지 버전업 등과 같이 업데이트할 경우, 새로운 사양의 ReplicaSet을 작성하고, 순서대로 새로운 Pod로 대체해서 롤아웃을 수행한다.
여기서, Deployment는 ReplicaSet과 달리, 이력사항을 관리하기 때문에, 이전으로 롤백할 수 있다.
HPA는 클러스터에서 Pod의 자동 스케일링을 관리하기 위한 기능 제공.
클러스터에서 실행 중인 애플리케이션의 부하 혹은 리소스 사용률에 따라 Pod의 수를 자동으로 조절하여 애플리케이션의 가용성과 성능 최적화.
- 수평 스케일링:
파드의 수를 자동으로 조절.
트래픽 부하나 리소스 요구에 따라 스케일링 함.- 메트릭 기반 스케일링:
사용자가 지정한 메트릭에 기반하여 파드 수 조절.- 스케일링 제한:
파드의 최소 및 최대 수 지정하여 스케일링 범위 제한.
자원 소비 관리 및 예상치 못한 자원 사용량 증가 방지.- 대상 메트릭 및 측정 값:
메트릭 및 측정 값을 정의하고, 이 값이 어떤 범위에 있어야 스케일링을 수행할지 결정.
ex) CPU 사용률이 '70%' 초과하면 파드 생성하도록 설정- 자동 롤백:
스케일링 작업 중에 문제가 발생한 경우, 자동으로 이전 상태로 롤백할 수 있음.