7. PVC扩容
块存储和共享文件存储的步骤一致,找到要扩容的PVC名称,进行kubectl edit修改即可。下面演示修改共享文件存储的大小,且Pod还在运行中。
修改完成,已经扩容,再进到Pod中看看,没问题!
8. PVC克隆与快照
这两个功能建议从Dashboard上进行操作,推荐使用Kuboard来管理集群。
9. Ceph集群清理
如果 Rook 要继续使用,可以只清理创建的 deployment、pod、pvc 即可,之后可以直接投入使用。
9.1 删除Rook集群资源
1.首先找到哪些PVC挂载了Rook的动态存储,之后找到哪些Pod挂载了这些PVC,然后删除这些Pod,可能需要清理单独创建的Pod和Deployment或者其他的高级资源。
2.之后清理PVC,清理掉所有通过Ceph StorageClass创建的PVC后,最好检查一下PV是否被清理。
3.清理快照:kubectl delete volumesnapshot XXXXXXXX。
4.之后清理创建的Pool,包括块存储和文件存储
- kubectl delete -n rook-ceph cephblockpool <Pool名称>
- kubectl delete -n rook-ceph cephfilesystem <Pool名称>
5.清理StorageClass,kubectl delete sc <StorageClass名称>
9.2 清理Ceph集群
编辑CephCluster
并添加cleanupPolicy
kubectl -n rook-ceph patch cephcluster rook-ceph --type merge -p '{"spec":{"cleanupPolicy":{"confirmation":"yes-really-destroy-data"}}}'
说明:一旦启用清理策略,CephCluster 中任何新的配置更改都将被阻止。在请求删除 CR 之前不会发生任何事情,因此cleanupPolicy
如果需要,仍然可以恢复此更改。
kubectl -n rook-ceph delete cephcluster rook-ceph
9.3 删除Rook资源
kubectl delete -f operator.yaml
kubectl delete -f common.yaml
kubectl delete -f crds.yaml
9.4 删除主机上的数据
每台机器上删除/var/lib/rook/
rm -rf /var/lib/rook/*
9.5 清理磁盘数据
[root@k8s-master01 ~]# cat clean-ceph.sh
DISK="/dev/nvme0n2"
# Zap the disk to a fresh, usable state (zap-all is important, b/c MBR has to be clean)
sgdisk --zap-all $DISK
# 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
# SSDs may be better cleaned with blkdiscard instead of dd
blkdiscard $DISK
# Inform the OS of partition table changes
partprobe $DISK
# This command hangs on some systems: with caution, 'dmsetup remove_all --force' can be used
ls /dev/mapper/ceph-* | xargs -I% -- dmsetup remove %
# ceph-volume setup can leave ceph-<UUID> directories in /dev and /dev/mapper (unnecessary clutter)
rm -rf /dev/ceph-*
rm -rf /dev/mapper/ceph--*
每台节点执行
sh clean-ceph.sh
如果出现以下信息,可不用处理。因为是Vmware虚拟机加的磁盘类型为SCSI,不具有 blkdiscard 能力。
本篇文章内容参考杜宽的《云原生Kubernetes全栈架构师》,视频、资料文档等,大家可以多多支持!还有k8s训练营、“我为什么这么菜”知乎博主等资料文档,感谢无私奉献!