【发布时间】:2020-05-15 09:54:04
【问题描述】:
在 Google Cloud Platform 上,我有两个项目,project-a 和 project-b
在 project-a 我有一个 Google Container Registry (GCR),在 project-b 我有一个私有 Google Kubernetes Engine (GKE) 集群(带有 Cloud NAT 和私有 Google Access)。在project-b 中,我有一个 GKE 集群使用的自定义服务帐户(在创建集群时配置,而不是默认的compute 服务帐户。因此,我也不需要配置访问范围)。
根据文档,为了能够从project-a 中的 GCR 中提取图像,我授予了project-a 中相应 GCS 存储桶的自定义服务帐户“Storage Object Viewer”权限。
但是,我不断收到 GKE 无法提取映像的错误消息。不过,存储桶上的权限似乎很好:如果我为自定义服务帐户生成一个密钥文件,从中创建一个 kubernetes.io/dockerconfigjson 秘密并将该秘密用作imagePullSecrets,那么节点就能够提取图像。
我的假设是不需要创建此密钥,因为 GKE 节点已经使用自定义服务帐户。这里出了什么问题?
【问题讨论】:
-
你能分享一下你收到的确切错误吗?
-
@PjoterS 错误消息是:无法提取图像“eu.gcr.io/***/***:latest”:rpc 错误:代码 = 未知 desc = 来自守护进程的错误响应:未经授权:您没有执行此操作所需的权限,并且您的凭据可能无效。要验证您的请求,请按照以下步骤操作:cloud.google.com/container-registry/docs/…
-
我认为这个问题与 IAM 权限有关。您是否关注了错误消息中的链接?
标签: google-kubernetes-engine google-container-registry