💡 핵심 요약 (Executive Summary)
본 가이드는 쿠버네티스 Helm 패키지 매니저 rook ceph 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.
📑 Table of Contents
Reference & Guidelines (NOTE)
중요 사항:
- 클러스터의 샘플 매니페스트에서 ‘CephCluster’ 리소스를 사용자 정의해야 합니다.
- 각 CephCluster는 자체 네임스페이스에 배포되어야 하며 샘플에서는 네임스페이스에 ‘rook-ceph’를 사용합니다.
- 샘플 매니페스트에서는 ‘rook-ceph’ 네임스페이스에 rook-ceph 연산자도 설치했다고 가정합니다.
- Helm 차트에는 동일한 네임스페이스에서 CephCluster CRD를 생성하는 데 필요한 모든 RBAC가 포함되어 있습니다.
- ‘CephCluster’의 클러스터에 추가하는 모든 디스크 장치는 비어 있어야 합니다(파일 시스템 및 파티션이 없어야 함).
rook-ceph-operator
bash
helm repo add rook https://charts.rook.io/release
helm pull rook/rook-ceph --untar
helm install -n rook-ceph rook-ceph . --create-namespace
rook-ceph-cluster
전제조건
- operator 설치 후 진행
bash
helm pull rook/rook-ceph-cluster --untar
helm install -n rook-ceph rook-ceph-cluster .
설치 완료 확인
bash
kubectl get all -n rook-ceph
>>>
NAME READY STATUS RESTARTS AGE
pod/rook-ceph-operator-fd9bc499d-zr8vc 1/1 Running 0 27m
pod/csi-cephfsplugin-4vg2g 2/2 Running 0 7m38s
pod/csi-rbdplugin-q7hxn 2/2 Running 0 7m38s
pod/csi-rbdplugin-provisioner-7879747877-cthpr 5/5 Running 0 7m38s
pod/csi-cephfsplugin-provisioner-674fb56756-h99rw 5/5 Running 0 7m38s
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
daemonset.apps/csi-cephfsplugin 1 1 1 1 1 <none> 7m38s
daemonset.apps/csi-rbdplugin 1 1 1 1 1 <none> 7m38s
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/rook-ceph-operator 1/1 1 1 27m
deployment.apps/csi-rbdplugin-provisioner 1/1 1 1 7m39s
deployment.apps/csi-cephfsplugin-provisioner 1/1 1 1 7m39s
NAME DESIRED CURRENT READY AGE
replicaset.apps/rook-ceph-operator-fd9bc499d 1 1 1 27m
replicaset.apps/csi-rbdplugin-provisioner-7879747877 1 1 1 7m39s
replicaset.apps/csi-cephfsplugin-provisioner-674fb56756 1 1 1 7m39s
<<<
kubectl get sc -n rook-ceph
>>>
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
ceph-bucket rook-ceph.ceph.rook.io/bucket Delete Immediate false 8m31s
ceph-filesystem rook-ceph.cephfs.csi.ceph.com Delete Immediate true 8m31s
ceph-block (default) rook-ceph.rbd.csi.ceph.com Delete Immediate true 8m31s
<<<
CRD 조회
bash
kubectl get \
cephclients.ceph.rook.io,\
objectbucketclaims.objectbucket.io,\
objectbuckets.objectbucket.io,\
cephobjectzonegroups.ceph.rook.io,\
cephobjectrealms.ceph.rook.io,\
cephbucketnotifications.ceph.rook.io,\
cephblockpools.ceph.rook.io,\
cephfilesystemmirrors.ceph.rook.io,\
cephbuckettopics.ceph.rook.io,\
cephcosidrivers.ceph.rook.io,\
cephblockpoolradosnamespaces.ceph.rook.io,\
cephfilesystemsubvolumegroups.ceph.rook.io,\
cephobjectstoreusers.ceph.rook.io,\
cephobjectstores.ceph.rook.io,\
cephrbdmirrors.ceph.rook.io,\
cephfilesystems.ceph.rook.io,\
cephobjectzones.ceph.rook.io,\
cephnfses.ceph.rook.io,\
cephclusters.ceph.rook.io \
-n rook-ceph
제거
bash
helm uninstall -n rook-ceph rook-ceph-cluster
helm uninstall -n rook-ceph rook-ceph
#crd finalizer update
for CRD in $(kubectl get crd -n rook-ceph | awk '/ceph.rook.io/ {print $1}'); do
kubectl get -n rook-ceph "$CRD" -o name | \
xargs -I {} kubectl patch -n rook-ceph {} --type merge -p '{"metadata":{"finalizers": []}}'
done
sudo rm -rf /var/lib/rook
네임스페이스가 여전히 종료 중 상태에 있는 경우 삭제를 보류하고 있는 리소스를 확인하고 해당 종료자도 제거하세요.
bash
kubectl api-resources --verbs=list --namespaced -o name \
| xargs -n 1 kubectl get --show-kind --ignore-not-found -n rook-ceph
Leave a Reply