기본 스토리지 운영환경을 분리
PersistentVolumes : 관리자에 의해 생성된 볼륨
PersistentVolumeClaims : 사용자가 볼륨을 사용하기 위해 PV에 요청
온-디맨드 방식으로 스토리지 볼륨을 생성
사용자가 스토리지를 요청하면 자동으로 프로비저닝
하나 이상의 StorageClass 오브젝트를 사전 생성
✍ 온-디맨드 방식 : 이용자의 요구에 따라 서비스를 제공해주는 것
(참고 URL : https://kubernetes.io/docs/concepts/storage/storage-classes/)
스토리지의 "classes"를 설명
StorageClass에는 해당 StorageClass에 속하는 PV를 동적으로 프로비저닝 할 때 사용되는 provisioner, parameters와 reclaimPolicy 필드가 포함
reclaimPolicy가 지정되지 않으면 기본값은 delete
스토리지 클래스에 속하는 볼륨을 설명하는 parameters
예시) pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
name: pvname
spec:
capacity:
storage: <storage_size>
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
nfs:
server: <NFS_Server>
path: <Share_Storage>
(참고 URL : https://kubernetes.io/docs/concepts/storage/volumes/#hostpath
https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistent-volumes)
예시) pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-name
spec:
resources:
requests:
storage: size
accessModes:
- ReadWriteOnce
storageClassName: "manuel"
예시) pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod
spec:
containers:
- image: image
name: container-name
volumeMounts:
- name: volume-name
mountPath: /mount/dir
volumes:
- name: volume-name
persistentVolumeClaim:
claimName: pvc-name
(참고 URL : https://kubernetes.io/docs/concepts/storage/_print/#persistentvolumeclaims
https://kubernetes.io/docs/concepts/storage/_print/#claims-as-volumes)