배경
위의 글에서, 볼륨에 대한 스토리지 구성 정보가 yaml 형식의 포드 정의 파일 내에 포함되었다. 이런 구성 방법은 많은 Pod를 배포하는 대규모 환경에서 적절하지 않다.
이유
어떤 스토리지 솔루션을 사용하든 포드가 많아지는 경우, 각 포드에 대한 스토리지를 매번 구성해야 한다.
구성에 변경이 발생할 때마다, 모든 포드에서 변경을 해주어야 한다.
=> 스토리지의 중앙 관리 필요
Persistent Volumes
관리자가 구성한 클러스터 전체의 스토리지 볼륨 풀
클러스터에 애플리케이션을 배포하는 사용자가 사용하며, 사용자는 Persistent Volumes Claims를 사용하여 풀에서 스토리지를 선택한다.
생성 방법
yaml 형식의 정의 파일을 작성한 후 create 명령을 사용한다.
apiVersion: v1
kind: PersistentVolume
metadata:
name: pv-vol1
spec:
accessModes:
- ReadWriteOnce # | ReadOnlyMany | ReadWriteMany
capacity: # 예약할 스토리지 용량
storage: 1Gi
hostPath:
path: /tmp/data
- accessModes : 호스트에서 볼륨을 마운트 하는 방법으로, 읽기 전용 모드 또는 읽기 쓰기 모드 등이 있다.
- capacity : 스토리지 용량 설정
- hostPath : 볼륨 유형. AWS EBS 사용 시 awsElasticBlockStore 항목으로 대체
확인 방법
kubectl get persistentvolume