我正在尝试在GCP VM实例中部署并运行docker映像。 我需要它来访问特定的Cloud Storage Bucket(读和写)。
如何在虚拟机内部安装存储桶?如何在我的VM中运行的Docker容器中装入存储桶?
我已经阅读了一段时间的google cloud文档,但我仍然感到困惑。所有指南都显示了如何从本地计算机访问存储桶,而不是如何将其安装到VM。 https://cloud.google.com/storage/docs/quickstart-gsutil
发现了关于Fuse的一些信息,但是仅将单个存储桶安装到VM文件系统看起来就太复杂了。
答案 0 :(得分:1)
如果没有第三方软件(例如FUSE),则无法将Google Cloud Storage存储桶安装在Google Compute实例或容器中。 Linux和Windows都没有内置的Cloud Storage驱动程序。
答案 1 :(得分: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会提供至少两种其他选择:
us-central1
中,每GB /月约为0.20美元/ GB,而$ 0.04 / GB /月),并且具有最小大小要求(1TB)。