Kubernetes/07. 쿠버네티스 볼륨

[쿠버네티스] 쿠버네티스의 볼륨이란?

Jaden Park 2021. 6. 21. 16:27

들어가며: 볼륨 소개

볼륨 종류

끝마치며:


들어가며: 볼륨 소개

파드의 컨테이너는 이미지로부터 파일 시스템을 제공받습니다. 그러나 파드가 종료되면 파드 내에 변경된 데이터(파일)는 더 이상 사용할 수 없습니다. 컨트롤러에 의해 새로운 파드가 생성이 되면 이미지로부터 새로운 파일 시스템을 제공받습니다. 즉, 컨테이너는 기본적으로 데이터를 유지하지 않으며, 이런 형태를 상태가 없다(Stateless)라고 합니다.

 

쿠버네티스의 파드는 새로 생성된 데이터를 보존하기 위해 외부 저장소 볼륨을 생성하고, 이런 볼륨을 컨테이너에 마운트 해서 사용합니다. 볼륨은 여러 파드에서 동시에 접근이 가능합니다.

 

기본적으로 볼륨의 라이프사이클은 파드의 라이프사이클과 같습니다. 파드가 생성되면 볼륨도 같이 생성되고, 파드가 삭제되면 볼륨도 같이 삭제됩니다. 그러나 파드가 재시작하면 볼륨의 데이터는 삭제되지 않고 유지되며, 재시작 된 파드에게 해당 볼륨의 데이터를 다시 사용할 수 이도록 제공해줍니다.

 

그러나 새롭게 도입된 PersisentVolume 및 PersistentVolumeClaim을 사용하며 파드의 라이프사이클과 다르게 따로 볼륨만의 라이프 사이클을 분리할 수 있습니다. 파드나 컨트롤러가 제거되고 다시 생성되더라도 기존 볼륨을 사용할 수 있게 됩니다.


볼륨 종류

볼륨에는 다양한 종류가 있습니다.

쿠버네티스에서 제공하는 볼륨도 있고, 클라우드 불륨, 실제 스토리지 기술을 사용하는 볼륨도 있습니다.

 

다음은 쿠버네티스에서 지원하는 볼륨의 종류입니다.

 

1. emptyDir

임시로 데이터를 저장하는 빈 볼륨

 

2. gitRepo

내부적으로 emptyDir 기능을 이용하여, 초기에 Git 레포지토리의 내용을 채워서 제공하는 볼륨. 더 이상 사용되지 않습니다.

 

3. hostPath

쿠버네티스 클러스터 노드(host)의 파일 시스템을 제공하는 볼륨

 

4. 네트워크 스토리지 볼륨

cephfs, cinder, fc, flexVolume, flocker, glusterfs, quobyte, iscsi, nfs, rbd, vsphereVolume, scaleIO 등

 

5. 클라우드 스토리지 볼륨

awsElasticBlockStore, azureDisk, azureFile, gcePersistentDisk

 

6. 정적/동적 프로비저닝 볼륨

persistentVolumeClaim

 

7. 특수 유형볼륨

configMap, secret


끝마치며:

볼륨에 대한 상세한 설명은 이후 포스트에서 작성하도록 하겠습니다.

포스트에 없는 자세한 사항은 쿠버네티스 공식 블로그를 참고하시기 바랍니다.