쿠버네티스 오토스케일링

yong·2025년 8월 13일

SW 모빌리티 스쿨

목록 보기
9/11

쿠버네티스는 CPU 사용률이나 기타 메트릭을 체크하여 파드의 개수를 스케일링하는 기능인 HPA(Horizontal Pod AutoScaler)로 지정한 메트릭을 컨트롤러가 체크하여 부하에 따라 필요한 레플리카 수가 되도록 자동으로 파드를 늘리거나 줄이는 오토스케일링을 수행한다.

사용 가능한 리소스

  • Deployment
  • ReplicaSet
  • ReplicationController
  • StatefulSet

관측 가능성 시스템에도 쿠버네티스 오토스케일링을 적용해야 한다.

HPA 설정

HPA는 별도의 객체로 정의된다.

[실습] cpu 사용량이 75%가 넘으면 파드를 추가하는 HPA 생성하기
(파드의 최대 개수는 5개이고, pi-web-lab이라는 Deployment가 배포된 상태라고 가정)

apiVersion: autoscaling/v1
kind: horizontalpodautoscaler
metadata:
  name: pi-cpu
spec:
  scaletargetref:
    apiVerison: apps/v1
    kind: deployment
    name: pi-web-lab
  minreplicas: 1
  maxreplicas: 5
  targetcpuutilizationpercentage: 75

HPA는 15초마다 파드를 하나씩 추가하고 5분이 지날동안 CPU 사용량이 설정값보다 작으면 파드를 감소시킨다.

HPA 버전 2 사용

metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 75
behavior:
  scaleDown:
    stabilizationWindowSeconds: 30 # 측정값이 기준 아래로 내려온 후 30초 대기
    policies:
      - type: Percent
        value: 50
        periodSeconds: 15
  • 그라파나 관측 가능성 도구 내 다양한 컴포넌트(Ingester, Distributer, Querrie, Query-Frontend, Gateway)에 오토스케일링 적용 가능

오토스케일링 방법

AWS는 EC2 가상머신을 기반으로 오토스케일링을 제공한다.

  • 가상머신은 OS를 중심으로 네트워크, 스토리지가 모두 결합하므로 의존성이 높고 용량이 커서 오토스케일링에 필요한 복제 과정에서 시간이 오래 걸린다.
  • 애플리케이션의 수평적인 확장 시 불필요한 부분까지 확장이 되므로 비용과 자원의 최적화 측면에서 효과적이지 못하고 수평적인 확장을 달성하는 것이 어렵다.
    이러한 단점을 극복하고자 등장한 것이 컨테이너

측정된 메트릭을 기반으로 파드를 증가시키는 방법

  • 메트릭 측정을 위한 메트릭 서버를 사용하지만 이는 CPU와 메모리 메트릭만을 지원한다는 한계가 있다.
  • 일반적으로 애플리케이션 메트릭의 수집/관리를 위한 프로메테우스 어댑터, KEDA(Kubernetest Event-Driven Autoscaling) 등을 사용

유저의 트래픽을 각 파드로 분산하는 흐름

  • 사용자 트래픽은 프론트엔드를 거쳐 쿠버네티스 서비스를 통해 유입된다.
  • 오토스케일링으로 증가된 파드가 쉽게 발견되어야 하고 부하가 파드로 균등하게 분산되어야 한다.
  • 쿠버네티스 서비스 앞에 로드 밸런서가 구축된 운영환경을 구성해야 한다.
profile
꿈틀꿈틀

0개의 댓글