[CKA] PersistentVolume

PersistentVolume의 핵심 개념과 구성 방법, 실습 풀이를 정리합니다.

Persistent Volume

  1. 기존 볼륨 방식의 한계
  1. 대규모 환경에서의 문제점
  1. Persistent Volume의 등장 배경

정리하면 Persistent Volume은 스토리지 관리를 중앙화하여 대규모 환경에서의 스토리지 운영을 효율적으로 만들기 위해 도입되었습니다.

Persistent volume은 클러스터에 애플리케이션을 배포하는 사용자가 사용하도록 관리자가 구성한 cluster-wide 스토리지 볼륨 풀입니다. 이제 사용자는 persistent volume claims을 사용하여 이 풀에서 스토리지를 선택할 수 있습니다.
Persistent volume을 생성하는 방법은 다음과 같습니다.

# PersistentVolume의 리소스 정의
kind: PersistentVolume
# Kubernetes API 버전 지정
apiVersion: v1

# PV의 메타데이터 섹션
metadata:
  name: pv-vol1    # PV의 고유 식별자

# PV의 상세 스펙 정의
spec:
  # 볼륨의 접근 모드 설정 (ReadWriteOnce, ReadOnlyMany, ReadWriteMany 중 선택)
  accessModes: [ "ReadWriteOnce" ]
  
  # 볼륨의 용량 설정
  capacity:
    storage: 1Gi    # 1기가바이트 저장 공간 할당
  
  # 호스트 경로 설정 (개발 환경 전용)
  hostPath:
    path: /tmp/data    # 호스트의 실제 저장 경로
  1. 접근 모드 (accessModes)
  1. 용량 (capacity)

3. 볼륨 유형 (hostPath)

$ kubectl create -f pv-definition.yaml
persistentvolume/pv-vol1 created

$ kubectl get pv
NAME      CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
pv-vol1   1Gi        RWO            Retain           Available                                   3min

$ kubectl delete pv pv-vol1
persistentvolume "pv-vol1" deleted