0

在本地使用容器进行开发时,docker-compose您可以创建所有容器都可以访问的共享卷。您可以轻松地将小型凭据文件从一个容器拖放到这些卷上,并让另一个容器使用它们。

我试图在 Google Compute Engine 中找到类似的东西,但我找不到任何类似的东西。

  • 无法在实例之间共享 Compute Engine 磁盘
  • Filestore 实例至少从 1 Tb 开始,并且代价高昂

Google Compute Engine 中是否有与 Docker 中共享卷的概念类似的东西,就如何挂载到实例、在实例之间共享以及小/便宜而言?

GCE 中是否不存在这样的概念,并且这样的功能是否可用,但仅在 Google Kubernetes Engine (GKE) 中可用?

4

2 回答 2

0

实际上 Compute Engine 磁盘可以在实例之间共享,但目前此功能处于测试阶段。
根据 Google 术语,Multi-writer Mode 下的 Persistent Disk 称为Shared PDPD multi-writermultiWriter共享 PD 是使用设置为 的选项创建的永久磁盘TrueShared PD 在读写模式下最多可以连接到 2 个 VM 。

Google Cloud > Cloud SDK:CLI > Doc > Reference > gcloud beta compute disks create
gcloud beta compute disks create --multi-writer
在多写入器模式下创建 Compute Engine 永久磁盘,以便它可以附加到多个 VM 的读写访问权限。只能与区域 SSD永久性磁盘一起使用。多写入器模式的磁盘不支持调整大小和快照操作。

至于 GKE,它也支持磁盘共享。您可以在只读模式下在多个 Pod 之间共享永久性磁盘。
有关更多详细信息,请参阅Google Cloud > GKE > Doc > Using persistent disks with multiple reader

于 2020-08-25T18:39:46.947 回答
0

另一种解决方案是为此使用云存储。如果您只有少量 Mb 且可接受的 I/O 操作,则可以使用gcsfuse。原理很简单:在您的文件系统中挂载一个 CLoud Storage 存储桶,并像系统中的任何其他目录一样写入它。

GCSFuse 在 API 调用中转换读/写操作,您需要为 API 调用付费(数百万次调用只需几美元,但如果您的应用程序是 I/O 密集型的,则可能会产生成本!)。此外,它是 API 调用,这意味着它不是本地磁盘,延迟(由于网络、HTTPS 握手等)比本地磁盘要高。

因此,请记住 GCSFuse 只是 Google Cloud Storage API 的包装器。

注意:如果您想共享凭据,为什么不使用 Google Secret Manager?

于 2020-08-26T08:34:41.507 回答