Kubernetes 에서 Ceph 를 쓰는 길은 둘이다. 클러스터 안에 Ceph 를 띄우는 Rook 관리 클러스터와, 밖에 있는 Ceph 를 붙이는 외부 클러스터다. 둘 다 Rook 오퍼레이터와 ceph-csi 드라이버를 쓰며, 차이는 Ceph 데몬(mon · mgr · osd)이 어디서 도느냐다. Ceph 자체는 Ceph 를 본다.
| 방식 | Ceph 데몬 위치 | 맞는 경우 |
|---|---|---|
| Rook 관리 (in-cluster) | Kubernetes 노드의 Pod | 전용 스토리지 노드가 없고 클러스터 노드의 디스크를 쓸 때. 이 트리의 Rook-ceph |
| 외부 클러스터 (external) | 별도 Ceph 클러스터 | 이미 운영 중인 Ceph 가 있거나 여러 Kubernetes 클러스터가 하나의 Ceph 를 나눠 쓸 때 |
현행 버전은 Rook v1.20.7, Ceph Tentacle 20.2.4 다[1].
| 항목 | 내용 |
|---|---|
| Kubernetes | v1.32 – v1.37 (Rook v1.20 기준) |
| Rook 관리 클러스터의 디스크 | 파티션 · 파일시스템이 없는 raw 디스크, raw 파티션, LVM LV, 또는 block 모드 PV. OSD 노드 3 대 이상 |
| 외부 클러스터 | Ceph 관리 노드에서 ceph CLI 를 쓸 수 있어야 한다. Squid(19) · Tentacle(20) 유지보수 중 |
| 노드 패키지 | lvm2. RBD 커널 모듈 |
절차는 Rook Ceph 설치 에 있다. 요약하면 다음과 같다.
git clone --single-branch --branch v1.20.7 https://github.com/rook/rook.git
cd rook/deploy/examples
kubectl create -f crds.yaml -f common.yaml -f csi-operator.yaml
kubectl create -f operator.yaml
kubectl -n rook-ceph get pod
kubectl create -f cluster.yaml
cluster.yaml 의 storage 절에서 OSD 로 쓸 노드와 디스크를 고른다 — Rook Ceph Cluster Tuning.
Rook 의 external cluster 모드다[2]. Ceph 쪽에서 접속 정보를 뽑고, Kubernetes 쪽에서 그것을 Secret · ConfigMap 으로 넣은 뒤 CephCluster 를 external 로 만든다.
Rook 저장소의 deploy/examples/external/create-external-cluster-resources.py 를 Ceph 관리 노드로 가져가 실행한다. RBD 풀과 CephFS 는 미리 만들어 둔다.
python3 create-external-cluster-resources.py \
--rbd-data-pool-name replicapool \
--cephfs-filesystem-name myfs \
--namespace rook-ceph-external \
--format bash
출력은 export ROOK_EXTERNAL_FSID=... 같은 변수 목록이다.
오퍼레이터가 이미 있다는 전제다. 위 출력을 붙여 넣어 변수를 잡고 import 스크립트를 실행한다.
cd rook/deploy/examples
export ROOK_EXTERNAL_FSID=...
export ROOK_EXTERNAL_CEPH_MON_DATA=...
. import-external-cluster.sh
kubectl create -f external/common-external.yaml
kubectl create -f external/cluster-external.yaml
kubectl -n rook-ceph-external get cephcluster
kubectl get sc
PHASE 가 Connected 이고 ceph-rbd · cephfs StorageClass 가 생기면 PVC 를 만들 수 있다.
Rook v1.20.7 — 2026-09-20 확인. https://github.com/rook/rook/releases/latest · Ceph 20.2.4 — https://docs.ceph.com/en/latest/releases/ ↩︎
https://rook.io/docs/rook/latest/CRDs/Cluster/external-cluster/external-cluster/ ↩︎