Kubernetes+Ceph时cephfs和ceph-rbd的PV管理

作者: ygqygq2 分类: 未分类 发布时间: 2019-05-17 17:08

Kubernetes+Ceph时cephfs和ceph-rbd的PV管理

1. 目的

环境
Kubernetes: v1.13.4
Ceph: 12.2.10 luminous (stable)
external storage provisioner: https://github.com/kubernetes-incubator/external-storage/tree/master/ceph

目的
Kubernetes storage class使用以上provisioner管理pv/pvc时,默认不支持 recycle回收策略,且pv创建后,除非人为删除,其会一直存在。为了更好的管理pv/pvc,本文以shell脚本方式人为补充管理。

相关脚本:
https://github.com/ygqygq2/kubernetes/tree/master/shell/pv-manage

2. 相关原理

介绍下上面脚本中使用的一些原理细节。

2.1 PV的状态切换与PVC的关系

以下文章中已经通过具体示例测试PV的ReleasedAvailable状态切换:
Kubernetes PV在Retain策略Released状态下重新分配到PVC恢复数据

2.2 删除PV需要在ceph集群中删除哪些信息

删除PV后,ceph集群中原来Kubernetes使用的相关资源并未完全删除,因此如果想要完成删除,需要了解它们之间的关联。

准备工作
ceph管理节点挂载CephFS

将ceph用户密钥提取至/etc/ceph/ceph.client.admin.secret,并使用它将cephfs根目录挂载至特定目录:

如下可设置开机自动挂载:
/etc/fstab添加一行

查看一个cephfs类型的PV

ceph管理节点做些确认:

kubernetes管理节点做些确认:

可以看出两边的keypath是对应的。因此,如果删除此pv,相关的资源有:ceph中的auth、path,kubernetes中的pv、secret。

查看一个rbd类型的PV

从以上看出,因为rbd下user和pool都是共用的,所以只要确认image,这样如果要删除此pv,相关的资源有:ceph中的image,kubernetes中的pv。

3. 小结

以上环境中,cephfs的pv虽有大小设置,但是实际使用过程中并未发现有大小限制,参考资料[5]、[6]中可以查看相关详情。
另外,此文章Kubernetes容器挂载 ceph rbd 卷的平滑扩容方法,也是我经过实践证明可行的。

参考资料:
[1] http://docs.ceph.org.cn/cephfs/kernel/
[2] http://docs.ceph.org.cn/cephfs/fstab/
[3] http://docs.ceph.org.cn/rbd/rados-rbd-cmds/
[4] https://blog.csdn.net/shida_csdn/article/details/79193009
[5] http://docs.ceph.org.cn/cephfs/quota/
[6] https://www.cnblogs.com/ltxdzh/p/9173706.html

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据