不重启节点情况下删除rook-ceph

不重启删除rook-ceph

一、背景说明

客户环境中使用了rook-ceph来做ceph存储。在安装后存在问题,需要卸载。但按照官网方式卸载后还存在残留,安装还会报失败或者功能使用后各种卷重复。于是总结如下:

【注意】在不保留数据的情况下执行该步骤

正常三节点安装后的pod如下:

复制代码
root@master1:/opt/ceph# kubectl get pod -n rook-ceph
NAME                                                READY   STATUS      RESTARTS        AGE
csi-cephfsplugin-8jb9v                              3/3     Running     1 (3m40s ago)   4m14s
csi-cephfsplugin-dp78k                              3/3     Running     1 (3m6s ago)    4m14s
csi-cephfsplugin-nw8nj                              3/3     Running     0               4m14s
csi-cephfsplugin-provisioner-78d847f5d4-2pchq       6/6     Running     1 (3m38s ago)   4m14s
csi-cephfsplugin-provisioner-78d847f5d4-jpcgk       6/6     Running     1 (3m2s ago)    4m14s
csi-rbdplugin-9cjzq                                 3/3     Running     1 (3m40s ago)   4m14s
csi-rbdplugin-gm5qf                                 3/3     Running     1 (3m6s ago)    4m14s
csi-rbdplugin-provisioner-6dd5684d4b-hfm66          6/6     Running     1 (3m37s ago)   4m14s
csi-rbdplugin-provisioner-6dd5684d4b-r8cqb          6/6     Running     1 (3m4s ago)    4m14s
csi-rbdplugin-ws45k                                 3/3     Running     0               4m14s
rook-ceph-crashcollector-master1-7c6c8f578-nftw8    1/1     Running     0               2m34s
rook-ceph-crashcollector-master2-76c677787-tvv98    1/1     Running     0               2m6s
rook-ceph-crashcollector-master3-7f5c4666dd-f7j6g   1/1     Running     0               2m6s
rook-ceph-exporter-master1-67f4c7bdbc-7zh8g         1/1     Running     0               2m34s
rook-ceph-exporter-master2-677bb9b494-7cb2c         1/1     Running     0               2m3s
rook-ceph-exporter-master3-6fdfd54b45-l7jx6         1/1     Running     0               2m3s
rook-ceph-mgr-a-5cbcf885f6-pqh5j                    3/3     Running     0               2m52s
rook-ceph-mgr-b-6db674b769-sx82w                    3/3     Running     0               2m50s
rook-ceph-mon-a-b46b766d4-vpj7l                     2/2     Running     0               3m21s
rook-ceph-mon-b-df5ff469d-k8ql8                     2/2     Running     0               3m15s
rook-ceph-mon-c-c764d44b5-8fgd9                     2/2     Running     0               3m4s
rook-ceph-operator-78dcf875cf-6cmnk                 1/1     Running     0               4m45s
rook-ceph-osd-0-6b4fb8c65b-4b88n                    2/2     Running     0               2m2s
rook-ceph-osd-1-5c69f97568-j2kjt                    2/2     Running     0               2m7s
rook-ceph-osd-2-564d496c7b-27wzb                    2/2     Running     0               2m6s
rook-ceph-osd-3-7c65b8f59-hhlsb                     2/2     Running     0               2m2s
rook-ceph-osd-4-55c49f94fc-rwvrt                    2/2     Running     0               2m6s
rook-ceph-osd-5-65fc76fc77-p6jjn                    2/2     Running     0               2m6s
rook-ceph-osd-6-54c7798545-qnjl9                    2/2     Running     0               2m2s
rook-ceph-osd-prepare-master1-tdln2                 0/1     Completed   0               2m29s
rook-ceph-osd-prepare-master2-ntqdh                 0/1     Completed   0               2m28s
rook-ceph-osd-prepare-master3-d5x5p                 0/1     Completed   0               2m27s
rook-ceph-tools-5c5cbb7454-845m5                    1/1     Running     0               4m43s

二、删除前清理

1、删除使用该存储的应用,pv,pvc,sc。否则需要重启节点

复制代码
root@master1:/opt/ceph# kuebctl get pv
kuebctl: command not found
root@master1:/opt/ceph# kubectl get pv -A
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                        STORAGECLASS       VOLUMEATTRIBUTESCLASS   REASON   AGE
pvc-98a6f72f-822e-42bd-8f2b-e9e91f0af926   500Gi      RWO            Delete           Bound    venus-plugin/registry-data   openebs-hostpath   <unset>                          7d5h
root@master1:/opt/ceph# kubectl get pvc -A
NAMESPACE      NAME            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS       VOLUMEATTRIBUTESCLASS   AGE
venus-plugin   registry-data   Bound    pvc-98a6f72f-822e-42bd-8f2b-e9e91f0af926   500Gi      RWO            openebs-hostpath   <unset>                 7d5h
root@master1:/opt/ceph# kubectl get sc -A
NAME                         PROVISIONER                  RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
openebs-hostpath (default)   openebs.io/local             Delete          WaitForFirstConsumer   false                  7d5h

2、删除images

复制代码
kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash

查看replicapool

复制代码
bash-5.1$ rbd --pool replicapool ls
csi-vol-0f45adae-b107-48a0-ab82-87b2e1c2468a
csi-vol-3dbfc2eb-a683-4b7a-acb9-be657b110981
csi-vol-679164e6-8c38-4a1e-a7f6-ab8621e685d4
csi-vol-90311708-c111-4d23-bbb0-fc049136b743
csi-vol-90311708-c111-4d23-bbb0-fc049136b745
csi-vol-e81c09bf-922c-4d0c-a52b-82f2664cd441

若存在,则需要删除

复制代码
bash-5.1$ rbd rm replicapool/csi-vol-e81c09bf-922c-4d0c-a52b-82f2664cd441
Removing image: 100% complete...done.

3、删除pool

复制代码
kubectl delete -f pool.yaml

4、添加清理主机路径

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

三、执行删除

复制代码
 bash uninstall-rook-ceph.sh

四、删除后处理

**【注意】**以下步骤每个rook-ceph节点都执行

复制代码
lsblk -f
# 清理物理磁盘(如果不需要数据)
wipefs -a /dev/sdb1
wipefs -a /dev/sdc1
wipefs -a /dev/sdd1
​
sgdisk --zap-all /dev/sdb1
sgdisk --zap-all /dev/sdc1
sgdisk --zap-all /dev/sdd1
​
#擦除数据,防止卷卡主,耗时较久
blkdiscard /dev/sdb1
blkdiscard /dev/sdc1
blkdiscard /dev/sdd1
#重新注册次哦按
partprobe /dev/sdb
partprobe /dev/sdc
partprobe /dev/sdd

删除残留目录

复制代码
rm -rf /var/lib/rook/*
rm -rf /var/lib/kubelet/plugins/rook-ceph.*
rm -rf /var/lib/kubelet/plugins_registry/rook-ceph.*

删除LVM映射

复制代码
# This command hangs on some systems: with caution, 'dmsetup remove_all --force' can be used
ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove %
rm -rf /dev/ceph-*
rm -rf /dev/mapper/ceph--*

五、删除卡住处理

1、查看

复制代码
ps aux | grep uninstall-rook-ceph.sh
ps -ef | grep 51651
lsof -p 51651

2、查看pool

复制代码
kubectl get cephcluster -n rook-ceph
kubectl get cephblockpools.ceph.rook.io -n rook-ceph

3、删除cm和secret

复制代码
kubectl -n rook-ceph patch secret rook-ceph-mon --type merge -p '{"metadata":{"finalizers": []}}'
kubectl -n rook-ceph patch configmap rook-ceph-mon-endpoints --type merge -p '{"metadata":{"finalizers": []}}'

4、 Ceph 集群核心状态

进入工具箱,检查最基本的 Ceph 组件状态:

复制代码
# 进入工具箱
kubectl -n rook-ceph exec -it deploy/rook-ceph-tools -- bash
​
# 检查集群整体状态
ceph -s
ceph status
​
# 检查 MON 状态
ceph mon stat
ceph mon dump
​
# 检查 OSD 状态
ceph osd stat
ceph osd tree
ceph osd dump
​
# 检查 PG 状态
ceph pg stat
相关推荐
Forsete1 分钟前
LINUX驱动开发#9——定时器
linux·驱动开发·单片机
JY.yuyu6 分钟前
Docker常用命令——数据卷管理 / 端口映射 / 容器互联
运维·docker·容器
森G21 分钟前
七、04ledc-sdk--------makefile有变化
linux·c语言·arm开发·c++·ubuntu
驱动探索者26 分钟前
linux mailbox 学习
linux·学习·算法
alice--小文子31 分钟前
cursor-mcp工具使用
java·服务器·前端
lpruoyu1 小时前
【Docker进阶-06】docker-compose & docker swarm
运维·docker·容器
China_Yanhy1 小时前
入职 Web3 运维日记 · 第 8 日:黑暗森林 —— 对抗 MEV 机器人的“三明治攻击”
运维·机器人·web3
艾莉丝努力练剑1 小时前
hixl vs NCCL:昇腾生态通信库的独特优势分析
运维·c++·人工智能·cann
酉鬼女又兒2 小时前
每天一个Linux命令_printf
linux·运维·服务器
翼龙云_cloud2 小时前
国际云代理商:2026年国际云注册风控升级实战指南 8 大平台无卡解决方案对比
服务器·阿里云·云计算