Tim*_*imK 6 google-cloud-storage google-compute-engine docker kubernetes google-kubernetes-engine
在自定义构建的CentOS Docker容器中部署Google服务帐户凭据以在Google的Container Engine或其"container-vm"上运行的最佳方法是什么?这种行为自动发生在google/cloud-sdk容器上,该容器运行debian并包含我不使用的东西,例如app-eng/java/php.理想情况下,我尝试访问项目中的非公共资源,例如Google Cloud Storage存储桶对象,而无需每次启动大量这些容器时都进行登录和授权.
例如,在运行在GCE上的基本Centos容器上安装了自定义代码并安装了gcloud/gsutil,当您运行时:
docker run --rm -ti custom-container gsutil ls
Run Code Online (Sandbox Code Playgroud)
系统会提示您运行"gsutil config"以获得授权,我希望如此.
但是,将google/cloud-sdk容器拉到同一个GCE并执行相同的命令,它似乎巧妙地配置了凭据的继承(可能来自主机容器-vm的凭据?).在GCE上运行容器以访问私有资源时,这似乎绕过运行"gsutil config".
我希望在最小的构建Centos容器中复制该行为以进行大规模部署.
更新:截至 2016 年 12 月 15 日,更新现有虚拟机范围的功能目前处于测试阶段;有关更多详细信息,请参阅此 SO 答案。
旧答案:一种方法是创建具有适当范围的VM (例如,Google Cloud Storage 只读或读写),然后 VM 上的所有进程(包括容器)都可以访问可通过 OAuth 2.0 使用的凭据; 请参阅Google Cloud Storage和Google Compute Engine的文档。
请注意,一旦使用某些范围集创建了 VM,以后就无法更改它们(既不能添加也不能删除),因此您必须确保在创建 VM 实例时设置正确的范围集。
跟进。
我最终使用了 /.config 和 /.gce 目录以及极少量的 GCE SDK 组件(没有 JDK/PHP/etc)。事实证明, wheezy -cloudtools Dockerfile是我能找到的最好的例子。
| 归档时间: |
|
| 查看次数: |
1777 次 |
| 最近记录: |