Rook-Ceph 개요 및 핵심 개념
1️⃣ Rook란 무엇인가? (Cloud-native storage orchestrator)
Rook은 클라우드 네이티브 환경에서 스토리지를 자동으로 관리하기 위한 **스토리지 오케스트레이터(Storage Orchestrator)**입니다.
- Kubernetes 환경에서 동작
- 스토리지 시스템을 쉽게 배포, 구성, 관리할 수 있음
- 다양한 백엔드 스토리지 시스템 지원: Ceph, Cassandra, EdgeFS, NFS 등
🧠 쉽게 말하면?
Rook = 스토리지 시스템을 쿠버네티스에서 자동화하는 매니저
📦 Rook은 Kubernetes Operator 패턴을 사용해 복잡한 스토리지 작업을 자동으로 처리합니다.
🖼️ Rook Operator 구조
+-------------------+
| Kubernetes Master |
+--------+----------+
|
| Operator (Rook)
v
+--------+----------+
| Ceph Cluster CRD | <--- 사용자 정의 리소스 (CR)
+--------+----------+
|
v
+--------+----------+
| Ceph 데몬 (OSD, MGR, MON 등)
+-------------------+
2️⃣ Ceph란 무엇인가? (확장 가능한 분산 스토리지)
Ceph는 오픈소스 기반의 분산형 스토리지 시스템으로, 다양한 스토리지 서비스를 제공합니다.
- 블록(Block) 스토리지 - 예: RBD
- 오브젝트(Object) 스토리지 - 예: S3 호환 RGW
- 파일(File) 스토리지 - 예: CephFS
🎯 주요 특징
항목 | 설명 |
---|---|
📈 확장성 | 수백~수천 대의 노드로 확장 가능 |
💥 내결함성 | 디스크 장애 발생 시 자동 복구 |
💡 자가 치유(Self-healing) | 데이터 자동 재분산 및 복제 |
🔐 고가용성 | 다수의 모니터(MON)를 통한 장애 대응 |
Ceph는 스토리지의
무중단 확장
,자가 복구
,장애 허용
기능으로 유명합니다.
3️⃣ Rook과 Ceph의 관계
- Rook은 Kubernetes 환경에서 Ceph을 자동으로 설치하고 관리하는 도구입니다.
- Ceph는 실제 데이터 저장을 처리하는 스토리지 백엔드 시스템입니다.
📌 요약:
Rook = Ceph 설치 및 운영 자동화 도구 (K8s-native)
Ceph = 분산 스토리지 엔진 (Data 저장소)
Rook은 Ceph Cluster를 Kubernetes 안에 설치하고 운영하면서, Ceph이 가진 강력한 기능을 클라우드 네이티브 환경에 쉽게 녹일 수 있도록 도와줍니다.
🖼️ Rook-Ceph 연동 구조
[Kubernetes]
|
+--> Rook Operator
|
+--> Ceph MON (모니터)
+--> Ceph OSD (데이터 저장)
+--> Ceph MGR (관리)
+--> Ceph RGW (S3 호환)
4️⃣ Kubernetes 환경에서 Rook-Ceph의 필요성
쿠버네티스는 기본적으로 스토리지를 직접 관리하지 않습니다. 그래서 스토리지 계층은 별도로 구축해야 합니다.
📌 Rook-Ceph을 사용하는 이유:
문제 | Rook-Ceph의 해결 방식 |
---|---|
스토리지 설치 복잡 | Ceph 설치, 설정 자동화 (Operator) |
스토리지 확장 어려움 | 자동 확장 및 자가 복구 지원 |
PVC 동적 프로비저닝 필요 | Ceph CSI 드라이버와 연동 |
고가용 스토리지 필요 | 다중 노드 구성으로 내결함성 확보 |
✅ 동작 흐름 예시 (PVC → Pod)
1. 사용자가 PVC 생성
2. Rook-Ceph의 CSI가 Ceph에 요청
3. Ceph이 실제 볼륨(RBD 등) 생성
4. Pod에서 해당 볼륨 사용
5️⃣ 실무에서의 활용 사례 (K8s PV/PVC, 데이터 서비스 백엔드 등)
💾 1. 퍼시스턴트 볼륨(PV/PVC) 자동 프로비저닝
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: my-ceph-pvc
spec:
storageClassName: rook-ceph-block
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
→ Pod에서는 위 PVC를 마운트하여 Ceph 볼륨 사용 가능
📊 2. 데이터베이스, 메시지 큐 등 데이터 집약적 서비스 백엔드
- PostgreSQL, MySQL, Redis, Kafka 등
- 장시간 데이터 저장 필요 → Rook-Ceph으로 고가용 스토리지 제공
☁️ 3. 프라이빗 S3 스토리지 구축
- Rook-Ceph + Ceph RGW로 사내 S3 호환 오브젝트 스토리지 구성
minio
보다 훨씬 확장성과 신뢰성 높음
📌 아키텍처 다이어그램 (실제 예시)
+--------------------------------------------------+
| Kubernetes Cluster |
| |
| +-------------+ +------------------------+ |
| | Pod A | --> | PVC → rook-ceph-block | |
| +-------------+ +------------------------+ |
| |
| Rook-Ceph Operator & Ceph Cluster |
| +------------+ +-----------+ +----------+ |
| | Ceph MON | | Ceph MGR | | Ceph OSD | |
| +------------+ +-----------+ +----------+ |
+--------------------------------------------------+
마지막 수정일자