【发布时间】:2020-01-26 05:40:43
【问题描述】:
我有一个简单的用例。我正在尝试在 Kubernetes 的两个不同节点上部署两个 pod。 Pod A 是一个服务器,它在收到 API 请求后创建一个文件 abc.txt。我想将这个abc.txt 文件挂载到Pod B 上。
如果文件jhsdiak.conf(该文件的名称是随机生成的)在启动之前在pod B 上不存在,pod B 将创建自己的默认文件。因此,为避免这种情况,文件必须在启动前挂载到Pod B。
这是我尝试过的事情
- 使用动态配置 PVC 的共享卷 -> 如果两个 pod 都创建在同一个节点上,这种方法可以正常工作。否则,因为 GCP 不支持 ReadWriteMany。
- 使用 Kubectl CP 将文件从
Pod A复制到主机路径,然后创建 configmaps/secrets 将其挂载到Pod B-> 此方法失败,因为文件 jhsdiak.conf 的名称是随机生成的。 - InitContainers -> 我不确定如何使用 init 容器将文件从一个 pod 移动到另一个。
- 使用 NFS 持久存储 -> 我还没有尝试过,但在 pod 之间移动一个文件似乎需要很多开销。
有没有更好或更有效的方法来解决这个问题?
【问题讨论】:
-
好像 NFS/Cloud Filestore 是 the way to go。
-
文件大小是多少?你每天有多少?
-
@guillaumeblaquiere 文件是根证书。非常分钟。我总共只有十个文件。不是每天一次,但一开始只有一次。
-
@char 我确实考虑过 NFS/Cloud Filestore,但似乎开销很大。我可以选择该选项,但我只需要确认这是正确的选择。
-
无论你做什么,都不要使用 NFS,开销太可怕了。您可以使用 storageClass,但您必须实现自己的访问控制机制,否则您可能会得到两个随机文件而不是一个
标签: kubernetes google-cloud-platform volumes