删除依赖的资源
kubectl delete -f ../wordpress.yaml
kubectl delete -f ../mysql.yaml
kubectl delete -n rook-ceph cephblockpool replicapool
kubectl delete storageclass rook-ceph-block
kubectl delete -f csi/cephfs/kube-registry.yaml
kubectl delete storageclass csi-cephfs
备注:如果没有使用到以上资源对象或者外部没有关联storageclass,可以跳过执行,在删除 Rook operator和agent之前删除以上资源很重要,否则可能无法正确清理资源。
删除 CephCluster CRD
kubectl -n rook-ceph patch cephcluster rook-ceph --type merge -p '{"spec":{"cleanupPolicy":{"confirmation":"yes-really-destroy-data"}}}'
kubectl -n rook-ceph delete cephcluster rook-ceph
kubectl -n rook-ceph get cephcluster
备注:如果在 Rook Cluster 上创建的资源没有被完全删除,清理作业可能不会启动
删除 Operator 及相关资源
kubectl delete -f operator.yaml
kubectl delete -f common.yaml
kubectl delete -f crds.yaml
备注:如果cleanupPolicy已应用 并且清理作业已在所有节点上完成,则集群拆除已成功。如果您跳过添加cleanupPolicy然后按照下面提到的手动步骤来拆除集群
删除主机上的数据
rm -rf /datarook/rook//dataDirHostPath指定的路径
ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove %
rm -rf /dev/ceph-*
rm -rf /dev/mapper/ceph--*
DISK="/dev/sdc"
dd if=/dev/zero of="$DISK" bs=512k count=1
wipefs -af $DISK
故障排除 如果清理指令没有按照上面的顺序执行,或者你很难清理集群,这里有一些事情可以尝试。
清理集群最常见的问题是rook-ceph命名空间或集群 CRD 无限期地保持在terminating状态中。命名空间在其所有资源都被删除之前无法被删除,因此请查看哪些资源正在等待终止。
kubectl -n rook-ceph get pod
kubectl -n rook-ceph get cephcluster
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": [null]}}'
done
kubectl api-resources --verbs=list --namespaced -o name \
| xargs -n 1 kubectl get --show-kind --ignore-not-found -n rook-ceph
kubectl -n rook-ceph patch configmap rook-ceph-mon-endpoints --type merge -p '{"metadata":{"finalizers": [null]}}'
kubectl -n rook-ceph patch secrets rook-ceph-mon --type merge -p '{"metadata":{"finalizers": [null]}}'
备注:删除之后可以通过etcdctl 查看资源是否彻底删除
ETCDCTL_API=3 etcdctl --cacert=/opt/kubernetes/ssl/ca.pem --cert=/opt/kubernetes/ssl/server.pem --key=/opt/kubernetes/ssl/server-key.pem --endpoints=https://192.168.1.92:2379,https://192.168.1.93:2379,https://192.168.1.94:2379 get /registry --prefix --keys-only=true | grep '/registry' |grep rook
【kubernetes|k8s中清除已安装的rook-ceph集群】详情请参考:ROOK官网
推荐阅读
- kubernetes|Kubernetes K8S之存储Volume详解
- kubernetes|Kubernetes K8S之存储Secret详解
- kubernetes|kubernetes (k8s) k8s 控制器
- kubernetes|kubernetes (k8s) list-watch机制、调度约束
- kubernetes|Kubernetes K8S之Ingress详解与示例
- kubernetes|【云原生】docker+k8微服务容器化实战(下篇)
- 云原生|云原生应用的建设之路
- kubernetes|kubernetes学习笔记-ingress-nginx
- kubernetes|二、Kubernetes集群环境的搭建