← 아티클 목록

Kubernetes StorageClass와 동적 볼륨 프로비저닝 입문

2028-06-19#kubernetes#storageclass#스토리지

쿠버네티스에서 DB나 파일 저장이 필요하면 볼륨을 붙여야 합니다. 그런데 클라우드마다 디스크 종류가 다르고, 미리 디스크를 일일이 만들어 두는 건 번거롭습니다. 여기서 StorageClass가 등장합니다. StorageClass는 "어떤 종류의 스토리지를, 어떤 방식으로 만들어 줄지"를 정의한 템플릿이고, 이를 통해 볼륨이 필요할 때 자동으로 생기는 것이 동적 프로비저닝입니다.

정적 vs 동적 프로비저닝

예전 방식은 관리자가 디스크를 먼저 만들고 그에 맞는 PersistentVolume(PV)을 손으로 등록했습니다. 이게 정적 방식입니다. StorageClass를 쓰면 PVC만 요청하면 실제 디스크와 PV가 자동으로 생성됩니다.

구분정적 프로비저닝동적 프로비저닝
PV 생성관리자가 미리 수동 생성PVC 요청 시 자동 생성
StorageClass없어도 됨핵심 역할
적합한 경우특수 디스크, 소규모클라우드, 셀프서비스 환경

핵심 구성요소 세 가지

흐름을 이해하려면 세 객체의 관계를 알아야 합니다. StorageClass는 디스크의 "사양 템플릿"이고, PVC(PersistentVolumeClaim)는 앱이 내는 "이만큼 주세요" 요청서이며, PV는 실제로 묶이는 저장 공간입니다. 앱은 PV를 직접 다루지 않고 PVC로만 요청합니다.

YAML
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: fast-ssd
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp3
reclaimPolicy: Delete

PVC로 볼륨 요청하기

앱은 위 StorageClass 이름만 지정해 PVC를 만들면 됩니다. 그러면 프로비저너가 실제 디스크를 만들고 PV로 묶어 줍니다.

YAML
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: data-pvc
spec:
  accessModes: ["ReadWriteOnce"]
  storageClassName: fast-ssd
  resources:
    requests:
      storage: 10Gi
Kubernetes
kubectl get storageclass
kubectl get pvc data-pvc

STATUSBound가 되면 디스크가 생성되어 PVC에 연결된 것입니다. 여기서 주의할 점은 reclaimPolicy입니다. Delete면 PVC를 지울 때 실제 디스크도 사라지고, Retain이면 데이터가 남습니다. 운영 DB라면 실수로 데이터가 날아가지 않게 정책을 신중히 골라야 합니다.

요점 정리

  • StorageClass는 "어떤 디스크를 어떻게 만들지" 정의한 템플릿이다.
  • 동적 프로비저닝은 PVC 요청만으로 PV와 실제 디스크를 자동 생성한다.
  • 앱은 PV가 아니라 PVC로 스토리지를 요청한다.
  • reclaimPolicyDelete인지 Retain인지에 따라 데이터 보존이 갈린다.

PVC를 만들어 볼륨이 자동으로 붙는 과정을 직접 확인하는 실습은 쿠버네티스 트랙에서 할 수 있습니다 — 회원가입 없이 무료로.