答案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
)。然后数据将从主机写入并由容器读取。