gpt4 book ai didi

google-cloud-storage - 如何在已部署到Google Container Engine的容器中使用Google Cloud Storage?

转载 作者:行者123 更新时间:2023-12-04 12:18:11 24 4
gpt4 key购买 nike

背景

我有一个在tomcat中运行的Java-Servlet应用程序,该应用程序在docker容器中运行,该容器在Google Container Engine上运行。扩展Docker镜像以获取和刷新证书也没什么大不了的(每个域只有一个Pod,因此不需要Pod间的通信)。但是,certbot需要将其凭据和证书保存在某个位置,并且pod的文件系统似乎是个坏主意,因为它是临时的,并且在pod重新启动后将无法生存。根据table with storage options。 Google Cloud存储似乎是一个好主意,因为它非常便宜,该卷是自动调整大小的,而且我还可以从多个位置访问它(我不需要为每个单独的Pod创建一个磁盘,这几乎是空的)包括Web UI(后面的版本可能对调试有用),并且吞吐量和延迟对于此用例而言实际上不是问题。

问题

我创建了一个存储桶,现在我想从容器中访问该存储桶。 Google描述了here,然后又描述了here,我可以使用FUSE来安装存储桶。他们没有提到的是,您需要使容器具有使用FUSE的特权,这对我来说并不完全合适。另外,我需要安装整个Google Cloud SDK并设置身份验证(我将在其中存储...?)。但是实际上我并不需要 fuse 。只需在启动时下载配置并在每次刷新后上载配置即可。所以类似SCP的东西会做...

gcloud可以从命令行访问文件,而无需FUSE,但是仍然需要使用凭据以某种方式对其进行初始化。

Here user326502提及

It won't work with zero configuration if the App Engine SDK is installed [..] As long as the container lives on a Google Compute Engine instance you can access any bucket in the same project.



他进一步解释说,当我只使用该库时,我完全不需要任何凭据。我想我可以使用这些库编写自己的复制应用程序,但是感觉就像我没有从网上的任何人那里找到类似的东西一样,这让我感到自己完全走错了路。

那么,如何从一个容器内(尽可能简单)实际访问Google云存储桶?

最佳答案

容器启动时,可以使用 gsutil 从存储桶复制到本地磁盘。

如果您在Google Container Engine中运行,则gsutil将使用集群节点的服务帐户(为此,创建集群时需要使用specify the storage-ro scope)。

另外,您可以创建一个new service account,生成一个JSON key 。在Container Engine中,您可以将该 key 存储为Kubernetes secret,然后将 key 安装在需要使用它的Pod中。在该 Pane 中,您可以通过调用 gsutil gcloud auth activate-service-account--key-file /path/to/my/mounted/secret-key.json配置为使用服务帐户

关于google-cloud-storage - 如何在已部署到Google Container Engine的容器中使用Google Cloud Storage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39258937/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com