[kubernetes] 퍼시스턴트 볼륨(PV)과 퍼시스턴트 볼륨클레임(PVC) - 심화

vinca·2023년 12월 8일
0

☸️ kubernetes

목록 보기
18/35
post-thumbnail

전체 과정

먼저 전체적인 과정부터 보도록 하자.

마운트와 바인드?
"마운트"는 실제로 스토리지를 시스템에 연결하는 행위를 말하고, "바인드"는 쿠버네티스에서 PVC와 PV를 연결하는 논리적인 행위를 말한다.

  1. 관리자는 📥NFS 볼륨을 생성하고, 이러한 📥NFS 볼륨과 연동되는 🧊PV☸️Kubernetes의 클러스터 영역 내 생성한다.

(이 또한 외부 스토리지를 내부 ☸️Kubernetes 영역에 연결하는 것으로 마운트라고 볼 수 있다.)

  1. 이후, 사용자는 📃PVC를 작성하여 적절한 🧊PV바인드한다.
    📃PVC를 통해서 🧊PV를 교체하거나, 사양을 수정하는 등의 작업을 수행할 수 있다.

  2. 사용자는 파드 YAML 내에서 📃PVC를 이용하여 🧊PV에 연결(마운트)해서 🧊PV를 사용하게 된다.

PV 수정과 교체?

☸️Kubernetes에서 한 번 생성된 📃PVC는 일반적으로 직접 수정할 수 없기에, 🧊PV를 교체하기 위해서는 📃PVC재 생성 하거나, 🧊PV의 YAML 파일을 수정해 줘야한다.

퍼시스턴트 볼륨(PV)

🧊PV☸️Kubernetes 클러스터에서 사용 가능한 저장 공간이다.
이러한 🧊PV는 클러스터 외부의 스토리지를 추상화한 것이다.

🧊PV에 스토리지의 세부 사항(용량, 접근 모드 등)을 정의하고, 이를 📃PVC를 통해 파드와 연결하여 스토리지를 동적으로 할당하고 사용할 수 있게 한다.

  • capacity
    PV가 할당된 스토리지의 용량

capacity 필드를 사용하여 PV를 생성할 때 얼마나 많은 스토리지를 사용할 것인지 지정할 수 있다.

단, 🧊PV의 capacity 설정은📃PVC를 통해 요청하는 용량과 일치해야 하거나 그 이상이어야 한다.
요청된 용량보다 더 적은 용량을 가진 🧊PV📃PVC바인딩되지 않는다.


  • accessModes

    하나의 노드 에서만 쓸 수 있을 것인지, 아니면 여러개의 노드에서 볼륨에 접근해서 사용할 수 있을지를 지정한다.

  • persistentvolumeReclaimPolicy

    persistentvolumeReclaim 즉, PVReclaim 정책을 지정한다.
    이 말인 즉 , PVC가 삭제 되었을 때 PV를 어떻게 할 것인가를 결정한다.

퍼시스턴트 볼륨클레임(PVC)

📃PVC는 스토리지에 대한 요구 사항(용량, 액세스 모드 등)을 정의한다.

📃PVC는 파드를 배포할 때 볼륨 파라메터 부분의 인자 값으로 사용된다.
이를 통해 파드는 클러스터 내의 🧊PV를 동적으로 할당받아(가장 적절한 PV를 할당) 파드에서 사용할 수 있는 내부 볼륨으로 사용한다.

실습

두가지 형태로 확인해보자. 코드 형태 및 해당 코드를 실제 실행시킨 결과 화면을 보도록 한다.

코드 형태로 확인

실제 실행 환경에서 확인

more..

하지만 이처럼 PV를 직접 미리 생성해두고, PVC로 연결하는 것은 누가봐도 너무나 번거로운 작업이다. 따라서 PVC를 생성하면 자동으로 PV를 생성해주는 StorageClass라는 것을 사용한다.

StorageClass와 PV의 생명주기

profile
붉은 배 오색 딱다구리 개발자 🦃Cloud & DevOps

0개의 댓글