새소식

Cloud Engineering Log

Rook-Ceph Teardown 정석으로 수행하기

  • -

Rook-Ceph은 CRD가 오고가는만큼, 모두 삭제하지 않으면 보통 namespace 삭제 단계에서 클러스터 freeze가 발생하더라.

 

그래서 보통 rook filesystem 자체를 초기화하는 업데이트를 할 때에는 클러스터를 날리고 다시 설정하는 비효율 끝판왕을 수행하느라

 

클러스터 재할당, 설정 다 다시하고... 이러는 복잡함을 겪었다.

 

 

 

그래서 일단 rokk-ceph teardown document를 중심으로

manulally 삭제를 잘 할 수 있는지 해보려 한다.

 

 

 

1. cephcluster CRD를 삭제준비상태로 patch

kubectl -n rook-ceph patch cephcluster rook-ceph --type merge -p '{"spec":{"cleanupPolicy":{"confirmation":"yes-really-destroy-data"}}}'

cephcluster.ceph.rook.io/rook-ceph patched

 

---

이러고 Cleanup - Job이 Complete되었는지 확인해줘야한다. (OSD로 사용했던 Volume을 청소해주는 Job)

 

---

 

2. cephcluster CRD 삭제

kubectl -n rook-ceph delete cephcluster rook-ceph

cephcluster.ceph.rook.io "rook-ceph" deleted

 

---

 

만약 helm으로 설치했다면, 여기서 

helm delete roo-ceph-cluster -n rook-ceph

을 수행한다.

 

--

 

3. ceph operator 삭제

 

helm으로 설치했다면

helm delete rook-ceph -n rook-ceph

 

직접 했다면,

kubectl delete -f operator.yaml
kubectl delete -f common.yaml
kubectl delete -f crds.yaml

 

4. Cleaning Datadirectory (for re-install)

이런 순서로 하고,

만약에 rook-ceph을 재설치해야한다면, rook-ceph osd가 올라갔던 datadir (예를 들어 /dev/vdb ...) 을 클러스터마다 찾아가서 아래 방법으로 초기화해줘야한다.

DISK="/dev/<<<DATADIR NAME으로 수정>>>"

# Zap the disk to a fresh, usable state (zap-all is important, b/c MBR has to be clean)
sgdisk --zap-all $DISK


# <<<< HDD Volume인경우 >>>>
# Wipe a large portion of the beginning of the disk to remove more LVM metadata that may be present
dd if=/dev/zero of="$DISK" bs=1M count=100 oflag=direct,dsync

# <<<< SSD Volume인경우 >>>>
# SSDs may be better cleaned with blkdiscard instead of dd
blkdiscard $DISK

# Inform the OS of partition table changes
partprobe $DISK

 

요러면 말끔하게 삭제된다!

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.