ReplicaSet, Deployment, HPA

Olivia·2023년 10월 23일
0

[Kubernetes]

목록 보기
2/2
post-thumbnail

ReplicaSet, Deployment, HPA

1. ReplicaSet

Pod를 직접 생성할 경우, 비효율, 삭제/장애 발생 시 자동 복구 X, so ReplicaSet 사용하여 Pod 관리.

  • 정해진 수동일한 Pod항상 실행되도록 관리
  • Label Selector의 조건에 따라 파드를 선택하고, 실행중인 Pod의 수가 부족한 경우, 새로운 Pod를 추가하고, 많을 때는 그 수를 줄임
  • Node 장애 등의 이유로 Pod를 사용할 수 없으면, ReplicaSet은 새로운 Pod를 생성해서 원하는 수의 인스턴스를 유지
  • Deployment에 의해 생성되고, 직접 ReplicaSet을 생성하거나 업데이트 하지 않는 것이 좋다.

2. Deployment

Deployment를 사용하면, ReplicaSet의 버전관리뿐만 아니라, 다양한 롤링 업데이트, 앱 배포 후 롤 백할 수 있기 때문에 ReplicaSet보다 Deployment를 사용하는 것이 좋다.

  • ReplicaSet과 다른 기능이 아닌, Deployment가 ReplicaSet을 관리해 앱 배포를 더 세밀하게 관리하는 것.
  • Deployment에서 이미지 버전업 등과 같이 업데이트할 경우, 새로운 사양의 ReplicaSet을 작성하고, 순서대로 새로운 Pod로 대체해서 롤아웃을 수행한다.
    여기서, Deployment는 ReplicaSet과 달리, 이력사항을 관리하기 때문에, 이전으로 롤백할 수 있다.

3. HPA(Horizontal Pod AutoScaler)

HPA는 클러스터에서 Pod의 자동 스케일링을 관리하기 위한 기능 제공.

클러스터에서 실행 중인 애플리케이션의 부하 혹은 리소스 사용률에 따라 Pod의 수를 자동으로 조절하여 애플리케이션의 가용성과 성능 최적화.

  • 수평 스케일링:

    파드의 수를 자동으로 조절.
    트래픽 부하나 리소스 요구에 따라 스케일링 함.
  • 메트릭 기반 스케일링:

    사용자가 지정한 메트릭에 기반하여 파드 수 조절.
  • 스케일링 제한:

    파드의 최소 및 최대 수 지정하여 스케일링 범위 제한.
    자원 소비 관리 및 예상치 못한 자원 사용량 증가 방지.
  • 대상 메트릭 및 측정 값:
    메트릭 및 측정 값을 정의하고, 이 값이 어떤 범위에 있어야 스케일링을 수행할지 결정.
    ex) CPU 사용률이 '70%' 초과하면 파드 생성하도록 설정
  • 자동 롤백:
    스케일링 작업 중에 문제가 발생한 경우, 자동으로 이전 상태로 롤백할 수 있음.
profile
👩🏻‍💻

0개의 댓글