본문 바로가기
Infra2026년 5월 22일3분 읽기

Kubernetes 1.33 In-place Pod Resize GA — 스테이트풀 워크로드 전략

YS
김영삼
조회 898
Kubernetes 1.33 In-place Pod Resize GA — 스테이트풀 워크로드 전략

핵심 요약

K8s 1.33에서 in-place pod resize가 GA. 파드를 재시작하지 않고 CPU·메모리를 늘리고 줄일 수 있다. 사내 PostgreSQL·Elasticsearch·Kafka 같은 스테이트풀 워크로드에서 트래픽 급증 시 즉시 스케일업, 파드 재시작 회피로 P95 latency 스파이크 0에 가깝게 운영.

1. 동작

apiVersion: v1
kind: Pod
spec:
  containers:
  - name: db
    resources:
      requests: { cpu: "2", memory: "4Gi" }
      limits:   { cpu: "4", memory: "8Gi" }
    resizePolicy:
    - resourceName: cpu
      restartPolicy: NotRequired
    - resourceName: memory
      restartPolicy: NotRequired

2. 리사이즈 실행

kubectl patch pod db --subresource resize --patch '
spec:
  containers:
  - name: db
    resources:
      requests: { cpu: "4", memory: "8Gi" }
      limits:   { cpu: "8", memory: "16Gi" }
'

kubelet이 cgroup만 조정. 컨테이너 재시작 없음.

3. VPA 통합

Vertical Pod Autoscaler가 in-place resize 모드 지원. updateMode: InPlaceOrRecreate로 설정하면 가능하면 재시작 없이 조정.

4. 함정

  • 메모리 다운사이즈 — 컨테이너가 OOM 위험, 절대 금지 권장
  • CRI-O/containerd 1.7+ 필요
  • cpu shares 변경이 즉시 반영되지 않을 수 있음(스케줄러 지연 ~5s)

5. 스테이트풀 운영 시나리오

상황이전1.33
PG 메모리 부족파드 재시작 → 페이지 캐시 손실 → 콜드 쿼리 60s 지연in-place 8→16GB, 무중단
ES heap 늘리기롤링 재시작 30분JVM 옵션은 그대로지만 컨테이너 limit만 늘림(특수 케이스)
Kafka broker CPU 추가리더 재선출즉시

6. 모니터링

kubectl get pods --output 'jsonpath={.items[*].status.resize}'
# "InProgress" / "Deferred" / "Infeasible"

7. 점진 도입

먼저 stateless API에서 1주, stateful로 확대. resizePolicy를 기본 설정으로 PodTemplate에 박아 두면 운영자가 일관되게 활용.

자주 묻는 질문

Q. HPA와 함께? 같은 파드에 HPA + VPA InPlace는 권장 안 함(중복 결정). HPA만 쓰거나 VPA만 쓰거나.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록