스토리지 생성 및 관리¶
프로젝트에서 사용할 볼륨(Volume)을 생성하고 관리하여, 애플리케이션이 사용하는 데이터를 안정적으로 보관하는 방법을 안내합니다.
볼륨은 Kubernetes 기반으로 동작하며, 애플리케이션에 연결되어 데이터를 영속적으로 유지합니다. 단일 Pod 전용부터 여러 노드에서 동시 접근 가능한 공유 스토리지까지 다양하게 설정할 수 있습니다.
프로젝트 > 스토리지 메뉴
볼륨 활용 흐름¶
flowchart LR
A["<b>1. 볼륨 생성</b><br/>용도에 맞는 접근 모드와<br/>스토리지 클래스 선택"]
B["<b>2. 애플리케이션 연결</b><br/>애플리케이션 생성/수정 시<br/>볼륨 마운트"]
C["<b>3. 데이터 사용</b><br/>애플리케이션에서 볼륨 경로로<br/>데이터 읽기/쓰기"]
D["<b>4. 용량 관리</b><br/>필요시 볼륨 용량 확장"]
A --> B
B --> C
C --> D
주요 내용¶
스토리지 유형 비교¶
| 스토리지 유형 | 특징 | 권장 사용 사례 |
|---|---|---|
| PVC | - 단일 애플리케이션에서만 마운트 가능 - 빠른 I/O 속도 - 애플리케이션 종료 시에도 데이터 유지 |
- 개인 작업 공간 - 학습 결과물 저장 - 빠른 읽기/쓰기가 필요한 작업 |
| Shared PVC | - 여러 애플리케이션에서 동시 마운트 가능 - 팀 단위 데이터 공유 - 애플리케이션 종료 시에도 데이터 유지 |
- 팀 공유 데이터셋 - 여러 사용자가 접근하는 모델 저장소 - 협업이 필요한 프로젝트 |
| Empty Dir | - 임시 저장 공간 - 애플리케이션 종료 시 데이터 삭제 - 빠른 I/O 속도 |
- 임시 캐시 - 중간 처리 결과물 - 재현 가능한 실험 환경 |
볼륨 사전 준비
사용자는 애플리케이션 배포 전 미리 볼륨을 준비하거나, 앱 생성 과정에서 필요한 볼륨을 함께 설정해 데이터를 유기적으로 연계할 수 있습니다.
볼륨 옵션¶
볼륨 생성 시 선택하는 주요 옵션에 대한 설명입니다.
스토리지 클래스 (Storage Class)¶
Ceph는 쿠버네티스에서 사용하는 분산 스토리지 시스템이며, 두 가지 제공 방식을 지원합니다.
| 스토리지 클래스 | 설명 | 접근 모드 |
|---|---|---|
| ceph-block | 블록 스토리지 방식, 단일 노드 전용 접근 | ReadWriteOnce, ReadWriteOncePod |
| ceph-filesystem | 파일 시스템 방식 (CephFS), 다중 노드 동시 접근 | ReadWriteMany, ReadOnlyMany |
접근 모드 (Access Mode)¶
어떤 노드/Pod가, 어느 방식으로 스토리지에 접근할 수 있는지를 정의하는 옵션입니다.
| 모드 | 설명 | 사용 가능한 스토리지 클래스 |
|---|---|---|
| ReadWriteOnce (RWO) | 단일 노드가 읽기/쓰기 가능 | ceph-block |
| ReadWriteOncePod (RWOP) | 단일 Pod만 읽기/쓰기 가능 (노드도 사실상 1개) | ceph-block |
| ReadWriteMany (RWX) | 여러 노드의 여러 Pod가 동시에 읽기/쓰기 가능 | ceph-filesystem |
| ReadOnlyMany (ROX) | 여러 노드의 여러 Pod가 읽기만 가능 | ceph-filesystem |
옵션 변경 불가
볼륨을 생성할 때 선택한 접근 모드와 스토리지 클래스는 이후 수정할 수 없습니다. 볼륨을 생성하기 전에 위 옵션을 참고하여 목적에 맞는 설정을 선택하세요.