Kubernetes Horizontal Pod Autoscaler(HPA) 완벽 가이드! Traffic 증가와 Pod 자동 확장 구조 이해하기

Kubernetes 환경에서는 Application의 Traffic이 항상 일정하지 않습니다.

평상시에는 적은 Resource만 필요하지만, 사용자가 증가하면 더 많은 처리 능력이 필요합니다.

예:

평상시

Pod 2개 운영

갑작스러운 Traffic 증가

CPU 사용률 상승

Pod 자동 증가

서비스 안정화

이러한 자동 확장 기능을 제공하는 것이 Kubernetes Horizontal Pod Autoscaler(HPA)입니다.

HPA는 CPU, Memory, Custom Metric 등을 기반으로 Pod 개수를 자동으로 조절하는 Kubernetes 핵심 기능입니다.

구성 요소역할
HPAReplica 자동 조정
Metrics Server사용량 수집
Controller ManagerScaling 실행
DeploymentReplica 관리
Pod실제 Application

HPA 구조를 이해하면 Cloud 환경에서 안정적인 Auto Scaling Architecture를 구축할 수 있습니다.

Kubernetes HPA란?

HPA(Horizontal Pod Autoscaler)는 Application의 Pod 개수를 자동으로 증가하거나 감소시키는 기능입니다.

기존 방식:

Traffic 증가

관리자가 Pod 개수 변경

Deployment 수정

HPA 방식:

Metric 확인

현재 상태 분석

Replica 변경

자동 확장

운영 자동화를 가능하게 합니다.

Kubernetes HPA가 필요한 이유

Application Traffic은 계속 변합니다.

예:

쇼핑몰 이벤트

접속자 증가

API 요청 증가

CPU 상승

서비스 지연

HPA를 적용하면 필요한 만큼 Pod를 자동으로 확장합니다.

Kubernetes HPA Architecture

구조:

Pod

↓

Metrics Server

↓

HPA Controller

↓

Deployment / ReplicaSet

↓

Pod 증가 또는 감소

Metrics 기반으로 Replica 수를 조정합니다.

Kubernetes HPA 동작 과정

전체 흐름:

사용자 요청 증가

Container 부하 증가

Metrics Server 측정

HPA Controller 계산

Replica 변경

새로운 Pod 생성

Traffic 분산

자동 확장 과정입니다.

Kubernetes HPA 주요 Metric

HPA는 다양한 Metric을 사용할 수 있습니다.

Metric설명
CPUCPU 사용률
MemoryMemory 사용량
Custom MetricApplication 지표
External Metric외부 지표

운영 환경에서는 Custom Metric 활용도 증가하고 있습니다.

Kubernetes HPA CPU 기반 Scaling

가장 일반적인 방식입니다.

예:

Target CPU:

70%

현재:

90%

결과:

Pod 증가

CPU 부하에 따라 Replica 수가 조절됩니다.

Kubernetes HPA Memory 기반 Scaling

Memory 기준 확장도 가능합니다.

예:

Memory 사용량 증가

HPA 감지

Pod 증가

Memory Leak이나 Cache 증가 상황에서 활용됩니다.

Kubernetes HPA Replica 계산 방식

HPA는 목표값과 현재값을 비교합니다.

기본 계산:

현재 Metric 값 ÷ 목표 Metric 값

예:

현재 CPU:

90%

목표:

45%

결과:

Replica 증가 필요

Controller가 계산하여 조정합니다.

Kubernetes HPA 설정 예시

예:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: web-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: web
  minReplicas: 2
  maxReplicas: 10
  metrics:
  - type: Resource
    resource:
      name: cpu
      target:
        type: Utilization
        averageUtilization: 70

CPU 70% 이상이면 Pod 확장을 시작합니다.

Kubernetes HPA와 Metrics Server

HPA는 직접 CPU를 측정하지 않습니다.

구조:

kubelet

Metrics Server

HPA Controller

Metrics Server가 Resource 데이터를 제공합니다.

Kubernetes HPA와 Cluster Autoscaler 관계

두 기능은 함께 사용됩니다.

HPA:

Pod 증가

Node 부족 발생

Cluster Autoscaler

Node 추가

구조:

HPA = Application 확장

Cluster Autoscaler = Infrastructure 확장

Cloud 환경에서 중요합니다.

Kubernetes HPA와 VPA 차이

구분HPAVPA
확장 방식Pod 개수 증가Resource 증가
관리 대상ReplicaCPU·Memory
목적Traffic 대응Resource 최적화
방식HorizontalVertical

서로 다른 역할을 합니다.

Kubernetes HPA 장애 분석

확장이 동작하지 않을 경우 확인합니다.

HPA 상태 확인

kubectl get hpa

상세 확인

kubectl describe hpa web-hpa

확인:

  • Metric 연결
  • Current Value
  • Desired Replica
  • Event 오류

Kubernetes HPA와 Resource Request 관계

중요한 부분입니다.

CPU 기반 HPA는 Resource Request 값을 기준으로 계산합니다.

Request 설정 없음

정확한 계산 불가

Scaling 실패 가능

따라서 Request 설정이 필요합니다.

Kubernetes HPA 운영 전략

Production 환경:

Metric 설정

최소 Replica 설정

최대 Replica 제한

Scaling 테스트

Monitoring

안정적인 Auto Scaling 환경을 구축합니다.

Kubernetes HPA와 Cloud 비용 관리

HPA는 비용 최적화와 연결됩니다.

Traffic 감소

Pod 감소

사용 Resource 감소

Cloud 비용 절감

효율적인 Infrastructure 운영이 가능합니다.

Kubernetes HPA Monitoring

확인 항목:

  • Replica 변화
  • CPU 사용률
  • Scaling Event
  • Response Time

Application 성능과 함께 확인해야 합니다.

Kubernetes HPA 장점

장점설명
자동 확장Traffic 대응
안정성 증가서비스 보호
비용 최적화불필요한 Resource 감소
운영 자동화수동 관리 감소

HPA는 Kubernetes 운영 자동화의 핵심 기능입니다.

자주 묻는 질문

HPA는 Node를 추가하나요?

아닙니다.

HPA는 Pod 개수만 조절하고 Node 추가는 Cluster Autoscaler가 담당합니다.

HPA와 VPA를 동시에 사용할 수 있나요?

가능하지만 Metric 기준을 잘 설계해야 합니다.

HPA는 CPU만 사용할 수 있나요?

아닙니다.

Memory와 Custom Metric도 사용할 수 있습니다.

마무리

Kubernetes HPA는 Application Traffic 변화에 따라 Pod 개수를 자동으로 조절하는 핵심 Autoscaling 기능입니다.

구성 요소역할
Metrics Server사용량 측정
HPA ControllerReplica 계산
DeploymentPod 관리
Cluster AutoscalerNode 확장

HPA 구조를 이해하면 Kubernetes 환경에서 안정적인 자동 확장 Architecture를 구축할 수 있습니다.

다음 글에서는 Kubernetes Infrastructure 자동 확장 영역인 Kubernetes Cluster Autoscaler 완벽 가이드! Node 자동 추가와 Cloud Infrastructure 확장 구조 이해하기를 진행하겠습니다.

댓글 남기기