목록 보기
[트러블슈팅] Kubernetes StatefulSet 스토리지 확장: Non-cascade 전략으로 무중단 Immutable 제약 극복
데브옵스

[트러블슈팅] Kubernetes StatefulSet 스토리지 확장: Non-cascade 전략으로 무중단 Immutable 제약 극복

KT 클라우드
KT 클라우드
2026년 4월 23일

두줄요약

Kubernetes StatefulSet의 Immutable 제약을 우회해 PVC를 먼저 확장하고 Non-cascade로 컨트롤러만 교체하는 절차를 정리했습니다. 서비스 중단 없이 스토리지를 늘리는 실무 트러블슈팅 방법을 설명했습니다.

문제 상황

  • StatefulSet의 volumeClaimTemplates가 Immutable이라 용량 변경이 API 서버에서 차단되는 문제
  • DB, 메시지 큐처럼 데이터를 유지한 채 스토리지만 확장해야 하는 운영 요구
  • 서비스 중단 없이 인증·보안 시스템 가용성을 유지해야 하는 제약

원인 분석

  • StatefulSet은 생성 후 템플릿 수정이 불가능한 구조
  • 기존 PVC와 새 StatefulSet 템플릿의 용량 불일치 시 배포 거부
  • 전체 재배포 방식은 운영 가용성 요구와 충돌

해결 방법

  • PVC를 먼저 patch해 실제 스토리지를 확장
  • StatefulSet을 --cascade=orphan 또는 Non-cascade로 삭제해 Pod 유지 후 컨트롤러만 교체
  • 수정된 용량의 Manifest로 StatefulSet을 재배포하고 기존 Pod를 다시 편입

주의할 점

  • updateStrategy가 OnDelete면 rollout restart가 동작하지 않음
  • 용량 반영이 안 되면 Pod를 순차 재시작해야 함
  • 작업 순서는 PVC 확장 후 StatefulSet 업데이트 순으로 유지

다음 읽기

#Kubernetes 주제를 이어서 읽기

[전환가이드] ArgoCD·FluxCD GitOps 배포를 HelmRelease로 전환하는 방법

ArgoCD 배포를 정적 YAML 대신 HelmRelease와 FluxCD로 전환하는 방법을 정리했습니다. values 분리, 순서 보장, 에어갭 배포까지 운영 포인트를 함께 다뤘습니다.

KT 클라우드
KT 클라우드
데브옵스

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...