在 Kubernetes,更具体地说是 GKE,我创建了一个 Filestore 卷,最小为 1TB。
然后我创建了一个 20gb 的持久卷声明。
如果我为另一个服务创建另一个 20gb PVC 会发生什么?
具体来说,如果你想在 pod 之间共享磁盘空间但有不同的数据,这种存储如何工作?Google 是否会“批量”请求 X gb 并且此空间保留在磁盘中?
在 Kubernetes,更具体地说是 GKE,我创建了一个 Filestore 卷,最小为 1TB。
然后我创建了一个 20gb 的持久卷声明。
如果我为另一个服务创建另一个 20gb PVC 会发生什么?
具体来说,如果你想在 pod 之间共享磁盘空间但有不同的数据,这种存储如何工作?Google 是否会“批量”请求 X gb 并且此空间保留在磁盘中?
PVC 和 PV 之间存在一对一的映射关系,因此您不能创建多个 PVC 指向同一个 PV。
但是有两种可能的方式可以跨多个 pod 共享底层 Filestore 文件共享。
您可以跨多个 pod 共享单个 PVC。因此,您可以创建一个 PVC,其中包含所有 pod 所需的总存储量(或将其设置为 Filestore 实例的大小)。然后,您将在所有 pod 上安装相同的 PVC。为确保您没有任何数据冲突,每个 pod 都应写入 PVC 中自己的目录。这肯定会起作用,但它不会限制或报告单个 pod 使用的存储空间。
您可以创建由同一个 Filestore 实例支持的多个 PV。创建每个 PV 时,指定每个 PV 的存储大小。然后为每个 pod 创建 PVC。我相信您仍然希望确保每个 pod 都写入一个唯一的目录。
最后,除非您有使用 Filestore 实例的特定原因,否则请考虑使用 GCE PD 的动态配置。