docker run
의 -v
옵션인 도커 볼륨과 유사한 역할을 한다고 이해할 수 있습니다.minikube 를 생성하면, 기본적으로 minikube 와 함께 설치되는 storageclass 가 존재합니다.
kubectl get storageclass
를 통해 이미 설치된 storageclass 를 확인할 수 있습니다.PVC 를 생성합니다.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: myclaim
spec: # pvc 의 정보를 입력하는 파트입니다.
accessModes:
- ReadWriteMany # ReadWriteOnce, ReadWriteMany 옵션을 선택할 수 있습니다.
volumeMode: Filesystem
resources:
requests:
storage: 10Mi # storage 용량을 설정합니다.
storageClassName: standard # 방금 전에 확인한 storageclass 의 name 을 입력합니다.
vi pvc.yaml
kubectl apply -f pvc.yaml
kubectl get pvc,pv
# pvc 와 동시에 pv 까지 방금 함께 생성된 것을 확인할 수 있습니다.
apiVersion: v1
kind: Pod
metadata:
name: mypod
spec:
containers:
- name: myfrontend
image: nginx
volumeMounts:
- mountPath: "/var/www/html" # mount 할 pvc 를 mount 할 pod 의 경로를 적습니다.
name: mypd # 어떤 이름이든 상관없으나, 아래 volumes[0].name 과 일치해야 합니다.
volumes:
- name: mypd # 어떤 이름이든 상관없으나, 위의 volumeMounts[0].name 과 일치해야 합니다.
persistentVolumeClaim:
claimName: myclaim # mount 할 pvc 의 name 을 적습니다.
vi pod-pvc.yaml
kubectl apply -f pod-pvc.yaml