본문 바로가기

Tech/[Container] Kubernetes

쿠버네티스 기본 오브젝트 - Volume

Volume

Volume Overview

  • Volume의 유형은 emptyDir, hostPath, PVC/PV 로 구분할 수 있다.

 

emptyDir

  • Pod 내에서 Container 간 파일을 공유하기 위해 사용하는 Volume
  • Pod가 삭제되면 Volume의 내용은 모두 없어지기 때문에 Pod가 삭제되도 상관이 없는 데이터를 담아야 함
  • 정리 : Pod 내 컨테이너 간 임시 폴더

 

hostPath

  • WorkerNode의 특정 Path를 Pod간의 공유 Volume으로 사용
  • 테스트 용도로 임시적으로 저장할 Volume이 필요시 사용
  • HostPath 볼륨에는 보안 위협 존재 → 운영환경에서는 HostPath를 사용하지 않는 것을 권고
  • type 옵션 : DirectoryOrCreate (실제 경로가 없다면 생성), Directory (실제 경로가 있어야됨), FileOrCreate (실제 경로에 파일이 없다면 생성), File (실제 파일이 었어야함)

 

PVC/PV

  • Pod에 영구적인 Volume을 할당하기 위한 리소스로 Pod -> PVC -> PV(Volume) 순으로 연결
  • Pod가 삭제됐다 재생성되어도, PVC/PV를 통해 지정된 Volume에 연결됨
  • PVC와 PV는 capacity와 accessMode를 기준으로 연결됨 *동일한 capacity와 accessMode가 많은 경우 Selector 활용
  • PVC의 storageClassName: "" : PVC에 storageClassName를 사용하지 않고 PV에 연결하기 위한 설정
  • PV의 local&nodeAffinity : 해당 PV에 연결된 Pod를 nodeAffinity에 지정한 Node에 스케줄링하며, 해당 Node를 Volume으로 사용 (이때 local.path에 지정된 경로가 해당 Node에 존재 해야함)

Reference : https://inf.run/yW34