CKA SimB - Q10 PV PVC 동적 프로비저닝

1 개요[ | ]

동적 프로비저닝을 이용한 PVC와 Pod 구성
  • StorageClass를 이용하여 PersistentVolumeClaim(PVC) 생성 시, PersistentVolume(PV)이 자동으로 프로비저닝되는 과정을 실습
  • 생성된 PVC는 Pod에서 volumeMount로 사용되며, 동적으로 할당된 PV는 PVC와 바인딩됨

2 StorageClass 확인[ | ]

  • 기본 StorageClass를 확인
# k get sc
NAME                 PROVISIONER               RECLAIMPOLICY   VOLUMEBINDINGMODE
standard (default)   kubernetes.io/host-path   Delete          Immediate

3 PVC 생성[ | ]

  • StorageClass를 명시하지 않으면 default StorageClass가 사용됨
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mypvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 100Mi
  • 생성 및 바인딩 확인
# k apply -f mypvc.yaml
# k get pvc
NAME     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
mypvc    Bound    pvc-2fbf79a1-0a0a-4e5a-8a3f-fc0be21cc5f9    100Mi      RWO            standard       10s

4 PVC 사용 Pod 생성[ | ]

  • PVC를 마운트하여 사용하는 Pod 정의
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: app
    image: nginx:1-alpine
    volumeMounts:
    - mountPath: "/data"
      name: myvol
  volumes:
  - name: myvol
    persistentVolumeClaim:
      claimName: mypvc
  • 생성 및 마운트 확인
# k apply -f mypod.yaml
# k exec mypod -- sh -c 'df -h /data'
Filesystem                Size      Used Available Use% Mounted on
/dev/sda1                100Mi     0Mi   100Mi     0%   /data

5 PV 상세 확인[ | ]

  • PVC가 자동 생성한 PV 확인
# k get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM           STORAGECLASS   AGE
pvc-2fbf79a1-0a0a-4e5a-8a3f-fc0be21cc5f9   100Mi      RWO            Delete           Bound    default/mypvc   standard       1m

6 핵심 요약[ | ]

  • PVC 생성 시 StorageClass에 따라 PV가 자동 생성됨 (동적 프로비저닝)
  • Pod는 PVC를 통해 자동으로 연결된 PV를 마운트해 영속적 저장소를 사용할 수 있음
  • PV는 PVC와 1:1 바인딩되며, 사용자가 직접 PV를 생성하지 않아도 됨
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}