不重启节点情况下删除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
相关推荐
C++ 老炮儿的技术栈2 小时前
KUKA机器人程序抓料
linux·运维·c语言·人工智能·机器人·库卡
Source.Liu2 小时前
【Ubuntu】文件与目录管理命令
linux·运维·ubuntu
Elastic 中国社区官方博客2 小时前
Agent Builder,超越聊天框:推出增强型基础设施
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
Linux蓝魔2 小时前
外网同步所有ubuntu源到内网使用
linux·数据库·ubuntu
若风的雨2 小时前
HIP 设备管理与初始化
linux
zfxwasaboy2 小时前
DRM KMS 子系统(5)Device/demo
linux·c语言
物理与数学2 小时前
linux内核常用hook机制
linux·linux内核
周公挚友2 小时前
centos 7.9 防火墙
linux·运维·centos
宇钶宇夕2 小时前
CoDeSys入门实战一起学习(十六):采样跟踪功能详解
运维·自动化·软件工程