0. 쿠버네티스 스토리지 볼륨 유형
: 쿠버네티스 환경은 다양한 스토리지 볼륨 유형을 제공하여 컨테이너화 애플리케이션의 데이터 저장소 요구를 충족합니다. 볼륨은 컨테이너의 파일 시스템에 디스크 스토리지를 연결하는 역할을 하며, 사용 목적에 따라 임시 스토리지와 영구 스토리지로 나뉩니다.
분류 | 유형 | 데이터 유지 여부 | 주요 특징 | 사용 사례 |
임시 스토리지 | 임시 파일 시스템 | 컨테이너에 종속 | 컨테이너 내부에서만 사용 | 캐싱, 로그 저장 |
EmptyDir | 파드에 종속 | 파드 내 모든 컨테이너에 공유 | 컨테이너 간 데이터 공유, 임시 작업 공간 | |
HostPath | 노드에 종속 | 노드의 특정 경로를 마운트 | 로그 접근, 호스트 구성 파일 | |
영구 스토리지 | PV & PVC | 독립적 | 클러스터 외부 스토리지에 연결하여 영구적 사용 | 상태 저장 애플리케이션 |
1. 임시 파일 시스템
: 임시 파일 시스템은 컨테이너 내부에서 사용되는 기본 파일 시스템으로, 컨테이너가 생성될 때 초기화되고 삭제되면 데이터도 함께 사라지는 휘발성 스토리지입니다.
[Caption] 임시 파일 시스템 도식화
주요 특징
•
컨테이너의 라이프사이클에 종속되며, 자체적으로 고유한 임시 파일 시스템을 가집니다.
•
기본적으로 컨테이너의 쓰기 가능한 계층에 데이터를 저장하며, 이는 컨테이너 삭제 시 사라집니다.
•
성능은 호스트 노드의 스토리지 드라이버 및 설정에 따라 달라질 수 있습니다.
적용 사례
•
컨테이너 내부에서만 필요한 일시적인 데이터 처리
◦
예) 캐싱, 임시 파일 생성
•
외부와 공유할 필요가 없는 데이터 저장
2. EmptyDir
: EmptyDir은 쿠버네티스에서 제공하는 볼륨 유형으로 파드 라이프사이클 동안 데이터를 저장하는 임시 디렉터리입니다.
[Caption] emptyDir 도식화
주요 특징
•
파드가 생성될 때 빈 상태로 시작하며, 파드 내 모든 컨테이너가 이를 공유할 수 있습니다.
•
파드가 삭제되면 EmptyDir 볼륨도 삭제됩니다.
•
데이터는 파드 내에서 컨테이너가 재시작되도 파드에 종속적이라 유지됩니다.
적용 사례
•
파드 내 여러 컨테이너 간 데이터 공유
◦
예) 데이터 처리 파이프라인
•
임시 작업 공간
◦
예) 배치 작업 중간 결과 저장
•
메모리 기반 고속 캐싱
3. HostPath
: HostPath는 노드의 파일 시스템에 있는 특정 디렉터리나 파일을 파드로 마운트합니다.
[Caption] HostPath 도식화
주요 특징
•
데이터는 노드에 종속되므로, 파드가 다른 노드로 이동하면 접근 불가능합니다.
•
호스트 파일 시스템 접근에 따른 보안 문제를 신중히 사용해야 합니다.
적용 사례
•
노드의 특정 파일이나 디렉터리에 접근해야 할 때
◦
예) 로그 파일, 호스트 구성 파일
4. Persistent Storage(영구 스토리지)
: 영구 스토리지는 파드의 생명주기와 독립적으로 외부 스토리지 영역에 존재하며 데이터를 지속적으로 유지합니다. 쿠버네티스에서 영구 스토리지는 주로 PersistentVolume(PV)과 PersistentVolumeClaim(PVC)을 통해 관리합니다.
[Caption] PV와 PVC 도식화
PersistentVolume (PV) & PersistentVolumeClaim (PVC)
•
PersistentVolume (PV)
◦
클러스터 관리자가 프로비저닝한 스토리지 리소스
◦
스토리지의 세부 구현을 추상화하여 제공
•
PersistentVolumeClaim (PVC)
◦
개발자가 필요한 스토리지 요청을 정의한 리소스
◦
PVC는 PV와 바인딩되어 사용
영구 볼륨의 프로비저닝 방법
•
정적 프로비저닝
◦
클러스터 관리자가 미리 PV를 생성하고, 사용자가 PVC를 통해 이를 요청하여 사용합니다.
◦
관리자가 미리 PV를 생성하는 수동 작업이 필요합니다.
◦
(장점) 스토리지 리소스를 세밀하게 제어 가능
◦
(단점) 관리 오버헤드 증가, 유연성 부족
•
동적 프로비저닝
◦
PVC가 생성되면 Kubernetes가 자동으로 해당 PVC에 맞는 PV를 생성합니다.
◦
StorageClass를 기반으로 동작하며, 스토리지 유형 및 프로비저닝 세부 사항을 정의할 수 있습니다.
◦
(장점) 관리 오버헤드 감소, 유연한 관리
◦
(단점) StorageClass 설정 필요하며 해당 StorageClass에 의존성
특징 | 정적 프로비저닝 | 동적 프로비저닝 |
프로비저닝 방식 | 관리자가 미리 PV 생성 | PVC 요청 시 자동으로 PV 생성 |
관리 오버헤드 | 높음 | 낮음 |
유연성 | 낮음 | 높음 |
필요 구성 요소 | PV | PVC + StorageClass |
주요 특징
•
PV는 클러스터 외부의 실제 스토리지(예: 클라우드 제공자, NFS 등)를 추상화하여 제공합니다.
•
PVC를 통해 동적 또는 정적 프로비저닝 가능합니다.
•
PVC가 삭제되어도 PV를 유지할 수 있는 정책(Retain, Delete, Recycle)을 설정할 수 있습니다.
적용 사례
•
데이터베이스와 같은 상태 저장 애플리케이션
•
로그 및 백업 데이터 저장