如何在不同项目中使用容器注册表中的映像?

luc*_*lho 5 google-kubernetes-engine google-container-registry

我在 Google Cloud 中有两个项目。在第一个项目中,我在容器注册表中有一些图像,我在 gke 中使用它。

当我尝试在第二个项目中创建容器时,它给了我一个错误:

错误:状态 403 试图拉存储库 project-1/image-x:“拒绝访问。”

我如何在 gke 中但在不同的项目中使用这些图像?我不想在第二个项目中创建相同的图像。

All*_*sG0 8

在您的第二个项目(GKE 项目)中,查看 IAM 权限,您将看到类似于以下内容的用户:123456789-compute@developer.gserviceaccount.com

然后在您的第一个项目(容器注册表项目)中,授予该用户Storage Object Viewer permission以允许 GKE 拉取映像。


Ale*_*son 3

您可以使用存储图像的 Google Cloud Storage 存储桶上可用的访问控制设置来修改图像的可见对象。

参考: https: //cloud.google.com/container-registry/docs/access-control

如果你只是想让你的所有图像对全世界都可读,那么来自另一个 StackOverflow 答案的命令应该会有所帮助: gsutil -m acl -r set public-read gs://bucket-name gsutil -m defacl set public-read gs://bucket-name