yan*_*kee 7 google-cloud-storage google-kubernetes-engine
我有一个在tomcat中运行的Java-Servlet应用程序,它运行在一个Docker容器中,该容器在Google容器引擎上运行.扩展docker镜像以便它还可以获取和刷新证书(每个域只有一个pod,因此不需要进行pod之间的通信).然而,certbot需要在某处保存它的凭据和证书,而pod的文件系统似乎是一个坏主意,因为它是短暂的,并且无法在pod重启后继续存在.根据存储选项表.谷歌云存储似乎是一个好主意,因为这是很便宜,体积自动大小,我还可以从多个位置访问它(我并不需要为每个单独的吊舱,这将是非常空创建一个磁盘)包括web-UI(后者可能对调试很有用),throuput和延迟对于这个用例来说真的没问题.
我创建了一个存储桶,现在我想从容器中访问该存储桶.谷歌描述了这里,并再次在这里,我可以安装使用FUSE桶.他们没有提到的是你需要让容器特权使用FUSE,这对我来说不太合适.此外,我需要安装整个谷歌云SDK并设置身份验证(我将存储...在哪里?).但实际上我并不需要保险丝访问.只需在启动时下载配置并在每次刷新后上传配置即可.所以与SCP类似的东西会......
有gcloud
可以从命令行访问文件,而不需要导火索,但它仍然需要与凭证莫名其妙初始化.
这里有 user326502提到
如果安装了App Engine SDK,则无法使用零配置[..]只要容器位于Google Compute Engine实例上,您就可以访问同一项目中的任何存储桶.
他进一步解释说,当我使用库时,我神奇地不需要任何凭据.我想我可以用这些库编写我自己的复制应用程序,但感觉事实是我没有从网上的任何人那里找到这样的东西让我觉得我完全走错了轨道.
那么如何从容器内实际访问谷歌云存储桶(尽可能简单)?
您可以使用gsutil
在容器启动时从存储桶复制到本地磁盘.
如果您在Google容器引擎中运行,gsutil
则将使用群集节点的服务帐户(为此,您需要在创建群集时指定storage-ro
范围).
或者,您可以创建新的服务帐户,生成JSON密钥.在Container Engine中,您可以将该密钥存储为Kubernetes 密钥,然后将密钥挂载到需要使用它的pod中.从该pod,您可以gsutil
通过调用配置使用服务帐户gcloud auth activate-service-account
--key-file /path/to/my/mounted/secret-key.json
归档时间: |
|
查看次数: |
5088 次 |
最近记录: |