문서 목차
QKS · Storage
Persistent Volume Claims (PVC)
Persistent Volume Claim(PVC) 은 파드가 영구 스토리지를 요청하는 방법입니다. 파드가 재시작되거나 다른 노드로 이동해도 PVC에 바인딩된 스토리지의 데이터는 유지됩니다. 데이터베이스, 파일 스토리지, 로그 등 상태를 유지해야 하는 데이터에 활용합니다.
QUANTUM C&S
개요
Persistent Volume Claim(PVC) 은 파드가 영구 스토리지를 요청하는 방법입니다. 파드가 재시작되거나 다른 노드로 이동해도 PVC에 바인딩된 스토리지의 데이터는 유지됩니다. 데이터베이스, 파일 스토리지, 로그 등 상태를 유지해야 하는 데이터에 활용합니다.
QKS 콘솔에서 PVC 확인
- 왼쪽 메뉴에서 Storage > Persistent Volume Claims를 선택합니다.
- 네임스페이스를 선택하면 PVC 목록이 표시됩니다.
목록에서 확인할 수 있는 정보:
| 항목 | 설명 |
|---|---|
| 이름 | PVC 이름 |
| 상태 | Bound / Pending / Lost |
| 볼륨 | 바인딩된 퍼시스턴트 볼륨 이름 |
| 용량 | 할당된 스토리지 용량 |
| 접근 모드 | ReadWriteOnce / ReadWriteMany / ReadOnlyMany |
| Storage Class | 사용 중인 스토리지 클래스 |
| 생성 시간 | PVC 생성 시각 |
PVC 상태
| 상태 | 설명 |
|---|---|
Pending |
PVC가 생성되었지만 아직 볼륨에 바인딩되지 않은 상태입니다. Storage Class나 가용 볼륨을 확인하세요. |
Bound |
PVC가 퍼시스턴트 볼륨에 성공적으로 바인딩된 상태입니다. |
Lost |
바인딩된 볼륨을 찾을 수 없는 상태입니다. 데이터 복구가 필요할 수 있습니다. |
접근 모드
| 모드 | 약어 | 설명 |
|---|---|---|
ReadWriteOnce |
RWO | 하나의 노드에서만 읽기/쓰기 가능. 가장 일반적 |
ReadOnlyMany |
ROX | 여러 노드에서 동시에 읽기 전용 접근 가능 |
ReadWriteMany |
RWX | 여러 노드에서 동시에 읽기/쓰기 가능 (NFS 등 지원 필요) |
PVC YAML 예시
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-database-pvc
namespace: production
spec:
accessModes:
- ReadWriteOnce
storageClassName: standard # 사용할 Storage Class
resources:
requests:
storage: 50Gi
파드에서 PVC 사용
PVC를 파드에 마운트하여 사용합니다.
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
containers:
- name: my-container
image: my-app:latest
volumeMounts:
- name: data-volume
mountPath: /data # 컨테이너 내 마운트 경로
volumes:
- name: data-volume
persistentVolumeClaim:
claimName: my-database-pvc # 사용할 PVC 이름
StatefulSet은 volumeClaimTemplates를 사용하여 파드별로 자동으로 PVC를 생성합니다:
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 10Gi
kubectl로 관리
# PVC 목록
kubectl get pvc -n <namespace>
# PVC 상세 정보 (바인딩된 볼륨, 이벤트 포함)
kubectl describe pvc <name> -n <namespace>
# PVC 삭제
kubectl delete pvc <name> -n <namespace>
주의사항
- PVC 삭제 전: 해당 PVC를 사용 중인 파드가 없는지 확인하세요. 사용 중인 PVC를 삭제하면 파드 종료 후에야 실제로 삭제됩니다.
- 데이터 복구: PVC를 삭제하면 Storage Class의
reclaimPolicy에 따라 데이터가 삭제됩니다(Delete) 또는 보존됩니다(Retain). 현재 클러스터의 Storage Class 정책을 미리 확인하세요. - 용량 확장: 일부 Storage Class는 PVC 용량을 온라인으로 확장할 수 있습니다. 용량 확장이 필요하면
spec.resources.requests.storage값을 늘리고kubectl apply를 실행하세요.