본문 바로가기
Development/Docker&Kubernetes

[K8S] PV & PVC

by 폴피드 2020. 10. 16.
728x90
반응형

1. PV (Persistent Volume)

 

- PV는 클러스터 리소스 이다. 

 

- volumeModes

  Filesystem : Pod 의 디렉토리에 마운트 된다.

  Block

 

- PersistentVolumeReclaimPolicy (PVC 삭제시 PV 데이터에 대한 정책)

  - Retail : 그대로 보존

  - Recycle : 재사용시 기존 pv 데이터들 삭제 후 재사용 (이건 사용 안함)

  - Delete : 볼륨 삭제 

 

- RecaimPolicy Update

  kubectl patch pv <your-pv-name> -p '{"spec":{"persistentVolumeReclaimPolicy":"Retain"}}'

 

2. PVC (Persistent Volume Claim)

 

pv 와 pvc 는 1:1 바인딩이며 pvc 가 요청하는 볼륨이 pv 에 없으면 무한 대기 한다.

따라서 바인딩을 위해서는 pv와 pvc 의 storageClassName 이 같아야 한다.

 

pod 이 사용중인 pvc 는 삭제가 불가능 하다.

 

3. 생성 Yaml (mysql 에서 사용하려고 만든 yaml 파일 이다.)

apiVersion: v1
kind: PersistentVolume
metadata:
  namespace: spring
  name: mysql-pv
spec:
  storageClassName: local-path
  accessModes:
    - ReadWriteOnce
  capacity:
    storage: 2Gi
  hostPath:
    path: /home/master01/k8s/mysql-data
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  namespace: spring
  name: mysql-pvc
spec:
  storageClassName: local-path
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi

 

참고 사이트

 

https://kubernetes.io/ko/docs/concepts/storage/persistent-volumes/

https://kubernetes.io/ko/docs/tasks/administer-cluster/change-pv-reclaim-policy/

 

728x90
반응형