Kubernetes PV와 PVC 개요

PV(Persistent Volume)

  • 클러스터 관리자가 프로비저닝한 스토리지 볼륨
  • Pod에 영구적인 스토리지를 제공
  • NFS, iSCSI, AWS EBS, GCP PD 등 다양한 유형의 스토리지 지원
  • 클러스터 수준에서 정의되며, 네임스페이스를 가지지 않음

PVC(Persistent Volume Claim)

  • 사용자(개발자)가 요청하는 스토리지 볼륨
  • 필요한 스토리지 용량과 접근 모드 지정
  • PV와 바인딩되어 Pod에 마운트됨
  • 네임스페이스 수준에서 정의

PV와 PVC의 관계

  1. 클러스터 관리자가 PV를 프로비저닝
  2. 사용자가 PVC를 생성하여 PV 요청
  3. 쿠버네티스가 PVC와 적절한 PV를 자동으로 바인딩
  4. Pod에서 PVC를 마운트하여 영구 스토리지 사용

PV 유형

  • 정적 프로비저닝: 미리 PV를 준비해 놓음
  • 동적 프로비저닝: PVC 요청 시 PV를 자동으로 생성

PV/PVC 생성 예시

# PV 정의
apiVersion: v1
kind: PersistentVolume
metadata:
  name: my-pv
spec:
  capacity:
    storage: 5Gi
  accessModes:
  - ReadWriteOnce
  hostPath:
    path: /data/my-pv

# PVC 정의  
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: my-pvc
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 3Gi

PV/PVC 사용 예시

# Pod에서 PVC 사용
apiVersion: v1
kind: Pod
metadata:
  name: app-pod
spec:
  containers:
  - name: app-container
    image: app-image
    volumeMounts:
    - name: app-storage
      mountPath: /app/data
  volumes:
  - name: app-storage
    persistentVolumeClaim:
      claimName: my-pvc

'IT > kubernetes[k8s]' 카테고리의 다른 글

kubectl expose 명령어 상세 가이드  (1) 2024.11.16
Kubernetes emptyDir 가이드  (1) 2024.11.16
Kubernetes Pod 개요  (2) 2024.11.16
쿠버네티스(Kubernetes)란?  (2) 2024.11.15
쿠버네티스 기본 명령어 모음  (0) 2024.11.15

+ Recent posts