목록 보기
[트러블슈팅] 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 업데이트 순으로 유지

댓글 0

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

댓글을 불러오는 중...