Persistent Volume Claims
Persistent Volume과 마찬가지로 쿠버네티스 개별 개체
관리자가 Persistent Volume의 집합을 생성하면, 사용자는 스토리지를 사용하기 위해 Persistent Volume Claims 생성
Persistent Volume Claims 생성 시, 쿠버네티스는 Persistent Volume Claims 설정에 따라 Persistent Volume을 바인딩한다.
모든 Persistent Volume Claims은 Persistent Volume에 바인딩된다.
바인딩하는 과정에서 쿠버네티스는 Persistent Volume Claims이 요청한 용량, 접근 모드, 볼륨 모드, 스토리지 클래스 등의 속성에 따라 바인딩할 Persistent Volume을 찾는다. 바인딩할 수 있는 볼륨이 여러 개 있는 경우, 레이블과 selector를 이용하여 적절하게 볼륨을 바인딩하도록 설정할 수 있다.
여러 설정에 적합하지만 클레임이 요청한 용량에 비해 볼륨에 설정된 용량이 큰 경우
더 적합한 볼륨이 없는 때에는 용량 낭비가 발생하는 볼륨에 클래임이 바인딩될 수 있다. 다만 클래임과 볼륨은 일대일 관계이기 때문에 볼륨의 남은 용량을 다른 클래임이 활용할 수는 없다.
클래임이 생성되었으나 바인딩할 볼륨이 없는 경우
클러스터 내에 사용할 볼륨이 생성될 때까지 클래임은 Pending 상태로 유지
사용할 수 있는 볼륨이 생성되면 자동 바인딩
Persistent Volume Claims 생성
yaml 형식의 정의 파일을 작성하여 create 명령으로 생성
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: myclaim
spec:
accessModes:
- ReadWriteOnce
resources: # 리소스 요청
requests:
storage: 500Mi
생성 직후에는 pending 상태
쿠버네티스가 기존에 생성된 볼륨을 확인하여, 접근 모드, 요청 용량과 볼륨 용량을 확인하여 사용할 수 있는 볼륨이 있으면 볼륨에 바인딩
바인딩 이후에는 bound 상태로 전환
Persistent Volume Claims 삭제
delete 명령으로 삭제 가능
kubectl delete persistentvolumeclaim <NAME>
클래임 삭제 시 볼륨 삭제 여부 설정 가능
persistentVolumeReclaimPolicy: Retain | Delete | Recycle
- Retain : 기본값. 관리자가 수동으로 볼륨을 삭제할 때까지 볼륨 유지. 다른 클래임에서 재사용 불가
- Delete : 클래임 삭제 시 볼륨 자동 삭제
- Recycle : 다른 클래임이 사용할 수 있도록 볼륨 데이터 정리