在另一个项目中使用GKE中的Google Container Registry

时间:2016-07-27 19:00:03

标签: google-kubernetes-engine google-container-registry

GKE集群如何从另一个项目中托管的Container Registry中提取容器图像?

我在项目<reader-project>中有一个GKE群集,试图访问项目<registry-project>中的GCR图像。

我已尝试在<reader-project>的存储桶中添加<registry-project>的GCE服务帐户电子邮件作为具有读者访问权限的用户,但我仍然收到错误:

<Error><Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>Caller does not have storage.objects.get access to object us.artifacts.<registry-project>.appspot.com/containers/images/sha256:<tag>.
</Details></Error>

3 个答案:

答案 0 :(得分:4)

尝试将GCE服务帐户电子邮件添加为具有存储对象查看器角色的用户。它为服务帐户提供了对项目中GCS对象(容器映像)的只读访问权限。

答案 1 :(得分:0)

您是否可以运行以下命令来检查两个存储桶的权限:

gsutil acl get gs://us.artifacts..appspot.com

gsutil acl get gs://artifacts..appspot.com

artifacts..appspot.com是默认存储桶。将服务帐户添加为存储对象查看器时,将授予默认存储桶的只读权限。

以下是有关gsutil工具的链接: https://cloud.google.com/storage/docs/gsutil/commands/acl

答案 2 :(得分:0)

查看您拥有GKE的项目的IAM权限,您将看到类似于123456789-compute@developer.gserviceaccount.com的用户。

然后在容器注册表项目中,为该用户授予Storage Object Viewer permission。然后,您的GKE将被允许从

中提取图像