본문 바로가기

Kubernetes

Volume과 PersistentVolume과 PersistentVolumeClaim의 차이

  PersistentVolumeClaim 리소스는 영속화 영역을 이용하기 위한 리소스입니다.

 

  Config&Storage 리소스의 한 종류인 PersistentVolumeClaim을 설명하기 전에 Volume과 PersistentVolume, PersistentVolumeClaim의 차이를 이해 할 필요가 있습니다. 

 

  Volume은 미리 준비된 이용가능한 볼륨 (호스트의 영역/NFS/iSCSI/Ceph) 등을 매니페스트로 직접 지정하여 이용가능하게 하는 것입니다. 때문에 이용자가 Kubernetes 상에서 신규로 볼륨을 작성한다거나, 기존의 볼륨을 제거한다거나 하는 조작을 실행할 수 없습니다. 또한 매니패스트에서 Volume 리소스를 작성한다거나 하는 처리도 실행할 수 없습니다.

 

  그래서 PersistentVolume은 외부의 영속 볼륨을 제공하는 시스템과 연계하여 신규 볼륨의 작성과 기존 볼륨의 제거등이 가능합니다. 구체적으로는 매니페스트 등에서 PersistentVolume 리소스를 별도 작성하는 형태로 됩니다.

 

  PersistentVolume과 Volume에도 같은 플러그인이 준비되어 있습니다. 예를 들면 GCP (Google Cloud Platform)과 AWS(Amazon Web Service)의 볼륨 서비스에서는 PersistentVolume 플러그인과 Volume 플러그인 모두 준비되어 있습니다. PersistentVolume 플러그인에는 Volume의 작성과 제거라고 하는 라이프 사이클을 처리하는 것이 가능 (PersistentVolumeClaim을 이용하면 Dynamic Provisioning도 가능) 하지만 Volume플러그인의 경우에는 이미 있는 Volume을 이용한 것만 가능합니다.

  

  PersistentVolumeClaim은 그 이름대로 작성된 PersistentVolume 리소스 중에서 Assign하기 위한 리소스가 됩니다. PersistentVolume은 클러스터에 볼륨을 등록하는 것뿐이라서 실제로 Pod에서 이용하기 위해서는 PersistentVolumeClaim을 정의하여 이용할 필요가 있습니다. 또한 Dynamic Provisioning 기능을 이용하는 경우에는 PersistentVolumeClaim가 사용되는 타이밍에 PersistentVolume을 동적으로 작성할 수 있기 때문에 순번이 반대로 느껴질지도 모릅니다.

'Kubernetes' 카테고리의 다른 글

2. Namespace 에 의한 가상 클러스터의 분리  (0) 2019.10.18
1. 쿠버네티스와 리소스  (0) 2019.10.17