PV(Persistent Volume)
- 물리적 스토리지 리소스를 나타내는 쿠버네티스 오브젝트
- 개발자가 직접 만들 수 도 있고(Static), 필요할 때마다 자동으로 만들어지도록 할 수 있음(Dynamic)
- 즉, 사용가능하도록 하는 물리적 용량
PVC(Persistent Volume Claim)
- Pod가 스토리지를 사용하기 위해 PVC를 참조한다.
- PVC는 적합한 PV를 찾아 1:1로 바인딩
- 즉, 개발자가 PVC를 만들어 이를 통해 물리적 용량(PV)을 요청함
PV를 PVC에 명시적 바인딩 하는 방법
바인딩 성공조건
- PVC의
accessModes가 PV와 완전히 동일 - PVC의 요청 용량(
storage) ≤ PV의 용량 (예: 5Gi 요청 → PV는 10Gi 가능). - 스토리지 클래스: PV의
storageClassName과 PVC의 storageClassName이 일치.
PV
apiVersion: v1
kind: PersistentVolume
metadata:
name: static-pv # PV 이름
spec:
capacity:
storage: 10Gi # PV의 총 용량
accessModes:
- ReadWriteOnce # PVC와 동일한 접근 모드 필수
persistentVolumeReclaimPolicy: Retain # PVC 삭제 후 PV 유지
storageClassName: "" # 명시적으로 빈 값 지정 (정적 프로비저닝)
hostPath:
path: /mnt/data # 실제 데이터 저장 경로
PVC
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: static-pvc # PVC 이름
spec:
accessModes:
- ReadWriteOnce # PV와 동일한 접근 모드
resources:
requests:
storage: 10Gi # PV 용량과 동일하게 요청
storageClassName: "" # PV와 동일한 스토리지 클래스 지정
volumeName: static-pv # 명시적으로 PV 이름 지정 (강제 바인딩)
Comment