GCP:如何从VM实例访问云存储桶

问题描述 投票:1回答:2

我正在尝试在GCP VM实例中部署和运行docker映像。我需要它来访问特定的Cloud Storage Bucket(读和写)。

我如何在虚拟机内部安装存储桶?如何在我的VM中运行的Docker容器中安装存储桶?

我已经阅读了一段时间的google cloud文档,但我仍然感到困惑。所有指南都显示了如何从本地计算机访问存储桶,而不是如何将其安装到VM。https://cloud.google.com/storage/docs/quickstart-gsutil

发现了有关Fuse的信息,但仅将单个存储桶安装到VM文件系统看起来就太复杂了。

docker google-cloud-platform google-cloud-storage mount
2个回答
1
投票

Google Cloud Storage是一个对象存储API,不是文件系统。结果,它并不是真正设计为“挂载”在VM中。它的设计具有很高的耐用性,并且可以扩展到非常大的对象(和大量对象)。

尽管您可以使用gcsfuse将其挂载为文件系统,但是该方法有很多明显的缺点。例如,对于一个普通的文件系统,执行even simple operations可能会增加操作数量。

同样,有许多surprising behaviors是由于它是对象存储这一事实而导致的。例如,您不能编辑对象-它们是不可变的。为了给写到对象中间的错觉,实际上是在调用close()fsync()时删除并重新创建对象。

使用GCS的最佳方法是将应用程序设计为直接使用the API(或S3 compatible API)。这样,应用程序就可以很好地理解语义,并且可以对其进行优化以获得更好的性能并控制成本。因此,要从docker容器访问它,请确保您的容器具有通过GCS进行身份验证的方式(通过实例上的凭据,或通过部署具有访问桶的必要权限的key for a service account),然后拥有该应用程序直接调用API。

最后,如果您实际上需要的是文件系统,而不是GCS,如果您需要一个针对该特定用例设计的大型可挂载文件系统,则Google Cloud会提供至少两种其他选择:

  • Persistent Disk,这是您通过VM获得的基准文件系统,但是您可以在单个VM上安装许多这些设备。但是,您不能一次将它们以一次读取/写入的方式装载到多个VM,如果您需要装载到多个VM,则将它们装载到的所有实例都为the persistent disk must be read only
  • Cloud Filestore是一项托管服务,在永久性磁盘之前提供NFS服务器。因此,文件系统可以被读取/写入并在许多VM之间共享。但是,它比PD贵得多(在撰写本文时,大约为$ 0.20 / GB /月,而在us-central1中为$ 0.04 / GB /月),并且具有最小大小要求(1TB)。

1
投票

没有FUSE之类的第三方软件,无法将Google Cloud Storage存储桶安装在Google Compute实例或容器中。 Linux和Windows都没有内置的Cloud Storage驱动程序。

© www.soinside.com 2019 - 2024. All rights reserved.