![既然树内 Kubernetes CephFS 持久卷插件已被弃用,我该如何使用 Rook 来获得相同的挂载行为?](https://linux22.com/image/789751/%E6%97%A2%E7%84%B6%E6%A0%91%E5%86%85%20Kubernetes%20CephFS%20%E6%8C%81%E4%B9%85%E5%8D%B7%E6%8F%92%E4%BB%B6%E5%B7%B2%E8%A2%AB%E5%BC%83%E7%94%A8%EF%BC%8C%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%20Rook%20%E6%9D%A5%E8%8E%B7%E5%BE%97%E7%9B%B8%E5%90%8C%E7%9A%84%E6%8C%82%E8%BD%BD%E8%A1%8C%E4%B8%BA%EF%BC%9F.png)
答案1
在使用 rook 处理 Ceph CSI 插件后,我认为其用法与原始的树内 Kubernetes 插件不同。具体来说,CSI 插件在所选 Ceph 文件系统中管理存储配置的方式是在 FS 中创建/删除子目录。具体来说,创建的持久卷数据存储在 下/volumes/csi/
。完整的子卷路径可以在持久卷的属性中找到,但本质上文件系统部分(/volumes
至少子路径)由 CSI 驱动程序管理。
之前,您需要手动指定要挂载到容器中的子路径,而使用 CSI 驱动程序,您需要指定卷名,然后该卷名将引用文件系统中的特定子路径(由 CSI 驱动程序创建和管理)。
要在不同的容器之间共享卷/数据,您需要重复使用相同的持久卷名称(请参阅 PVC 规范的 volumeName 参数) 并确保持久卷具有persistentVolumeReclaimPolicy
。Retain
如果您的默认策略是 ,Delete
则需要编辑 PV 规范并将其更改为Retain
。
Rook 文档中对此过程进行了更详细的描述这里需要注意的一点是,似乎您无法volumeName
在从 PVC 创建时手动设置 PV 的。我不确定您是否也可以手动创建 PV,而不是通过 PVC。
可能还有一种更直接的方法来实现这一点,但我并不熟悉。主要目的是跨多个容器和主机本身共享数据(使用mount -t ceph
)。然后数据将从主机写入并由容器读取。