如果需要删除 rook-ceph 集群并重新部署新的集群,应按照本文档依次清理分布式存储服务相关资源。
在清理 rook-ceph 之前,请确保所有使用 Ceph 存储的 PVC 和 PV 资源已被删除。
删除 VolumeSnapshotClasses。
验证 VolumeSnapshotClasses 是否已清理。
当这些命令无输出时,表示清理完成。
进入 Administrator。
在左侧导航栏点击 Storage Management > Storage Classes。
点击 ⋮ > Delete,删除所有使用 Ceph 存储方案的 StorageClasses。
此步骤应在完成上一步后执行。
进入 Administrator。
在左侧导航栏点击 Storage Management > Distributed Storage。
在 Storage Pool Area,点击 ⋮ > Delete,逐个删除所有存储池。当存储池区域显示 No Storage Pools 时,表示存储池已成功删除。
(可选)如果集群模式为 Extended,还需在集群的 Master 节点执行以下命令,删除创建的内置存储池。
响应:
此步骤应在完成上一步后执行。
更新 ceph-cluster 并启用清理策略。
删除 ceph-cluster。
删除执行清理的 jobs。
验证 ceph-cluster 是否清理完成。
当此命令无输出时,表示清理完成。
此步骤应在完成上一步后执行。
删除 rook-operator。
验证 rook-operator 是否清理完成。
当此命令无输出时,表示清理完成。
验证所有 ConfigMaps 是否已清理。
当此命令无输出时,表示清理完成。如有输出结果,执行以下命令清理,替换 <configmap>
为实际输出。
验证所有 Secrets 是否已清理。
当此命令无输出时,表示清理完成。如有输出结果,执行以下命令清理,替换 <secret>
为实际输出。
验证 rook-ceph 是否清理完成。
当此命令无输出时,表示清理完成。
完成以上步骤后,表示 Kubernetes 和 Ceph 相关资源已清理干净。接下来需要清理主机上 rook-ceph 的残留。
clean-rook.sh 清理脚本内容如下:
清理脚本依赖 sgdisk 命令,请确保在执行清理脚本前已安装该命令。
sudo apt install gdisk
sudo yum install gdisk
在业务集群中部署分布式存储的每台机器上执行清理脚本 clean-rook.sh。
示例:sh clean-rook.sh /dev/vdb
执行时会提示确认是否真的清理该设备,确认后输入 yes 开始清理。
使用 lsblk -f
命令查看分区信息。当该命令输出中 FSTYPE
列为空时,表示清理完成。