[Storage] Persistent Volume Claims, PVC

IMKUNYOUNG·2024년 7월 29일
0

KCNA

목록 보기
30/56

Kubernetes에서 안정적이고 지속적인 저장소를 제공하기 위해 Persistent Volume(PV)과 Persistent Volume Claim(PVC)을 사용합니다. 이번 포스트에서는 PVC를 생성하고 활용하는 방법을 단계별로 설명하겠습니다.

Persistent Volume Claims(PVC)란

Kubernetes에서 PV와 PVC는 두 개의 별도 객체입니다. 관리자는 먼저 Persistent Volumes의 세트를 생성합니다. 이후 사용자는 Persistent Volume Claims를 통해 이 저장소를 요청합니다. PVC가 생성되면, Kubernetes는 적절한 PV를 찾아 PVC에 바인딩합니다. 각 PVC는 하나의 PV에만 바인딩될 수 있습니다.

바인딩 과정

PVC가 생성되면 Kubernetes는 다음을 기준으로 적절한 PV를 찾습니다:

  • 요청된 용량
  • 액세스 모드
  • 볼륨 모드
  • 스토리지 클래스 등

여러 PV가 조건에 맞는다면 라벨과 셀렉터를 사용하여 특정 PV에 바인딩할 수 있습니다. 조건이 일치하는 PV가 하나뿐인 경우, PVC는 자동으로 해당 PV에 바인딩됩니다. 만약 사용 가능한 PV가 없다면 PVC는 대기 상태로 남아 있습니다. 새 PV가 생성되면 PVC는 자동으로 새 PV에 바인딩됩니다.

PVC 생성

PVC를 생성하는 방법을 살펴보겠습니다.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: myclaim
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 500Mi

위의 템플릿은 apiVersionv1으로 설정하고, kindPersistentVolumeClaim으로 설정합니다. metadata 섹션에서 이름을 myclaim으로 지정하고, spec 섹션에서 accessModesReadWriteOnce로 설정한 뒤 500메가바이트의 저장소를 요청합니다.

PVC 삭제 후 PV 처리

PVC가 삭제될 때 기본 PV는 어떻게 될까요? 선택 가능한 옵션은 다음과 같습니다:

  • 유지(Retain): PV는 수동으로 삭제될 때까지 남아 있으며, 다른 PVC가 다시 사용할 수 없습니다.
  • 삭제(Delete): PVC가 삭제되면 PV도 자동으로 삭제되어 저장 장치에서 공간을 해제합니다.
  • 재활용(Recycle): 데이터 볼륨의 데이터를 삭제하여 다른 PVC가 사용할 수 있게 합니다.

기본 설정은 유지(Retain)입니다.

마치며

이번 포스트에서는 Kubernetes에서 Persistent Volume Claims를 생성하고 사용하는 방법을 살펴보았습니다. PV와 PVC를 통해 안정적이고 지속적인 저장소를 제공할 수 있습니다.

0개의 댓글