【问题标题】:Kubectl Failed to pull docker image from private gcr.io repoKubectl 无法从私有 gcr.io 存储库中提取 docker 映像
【发布时间】:2023-03-07 18:44:01
【问题描述】:

我在从私有 GCR 中提取 docker 映像时遇到同样的问题,它会引发错误

Failed to pull image "gcr.io/{PROJECT_ID}/{IMAGE:TAG}:latest": rpc error: code = Unknown desc = Error response from daemon: repository gcr.io/{PROJECT_ID}/{IMAGE:TAG} not found: does not exist or no pull access

我尝试过但仍未解决问题的解决方案: 1.删​​除集群并重新创建 2. 为拉取图片的服务账号提供Editor Storage Admin。

此外,当我使用服务帐户身份验证尝试 docker image pull 时,我可以将图像下载到我的本地

docker image pull gcr.io/{PROJECT_ID}/{IMAGE:TAG}

任何建议\帮助我错过了什么

谢谢

【问题讨论】:

  • 如果注册表不公开,请先使用命令docker login登录。

标签: docker google-cloud-platform google-kubernetes-engine google-container-registry


【解决方案1】:

我建议确保您在集群中设置了适当的范围,以便服务帐户提取图像。 Here 是一篇文章,提供有关如何授予用户从注册表中提取图像的权限的分步说明。

【讨论】:

    【解决方案2】:

    您是否在本地计算机上运行 kubectl 命令?
    如果是这样,您应该首先使用 gcloud container clusters get-credentials my-cluster --zone=europe-west2-akubectl 上下文配置到 GKE,
    gcloud container clusters get-credentials my-cluster --zone=europe-west2-a

    在此处阅读更多信息
    https://cloud.google.com/sdk/gcloud/reference/container/clusters/get-credentials

    在执行上述命令之前,您可能需要安装和配置 Google Cloud SDK。 https://cloud.google.com/sdk/install
    https://cloud.google.com/sdk/docs/initializing

    【讨论】:

    • 是的,我正在从本地机器上运行 Kubectl,并且我已经设置了前面提到的配置上下文,但它仍然没有成功。我也尝试从谷歌控制台外壳执行此操作。
    【解决方案3】:

    这个问题主要是在我们使用默认服务帐户创建集群时出现的(没有从GCR拉取图像的权限),所以要解决这个问题,我们可以尝试以下方法:

    我们需要在创建集群的时候指定范围为cloud-platform,这样集群中的节点才能获得从GCR拉取镜像的权限

    gcloud container clusters create "test-cluster"   --zone "us-central1-a"   --machine-type "n1-standard-1"    --scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/devstorage.read_write  --num-nodes "3"
    

    或者

    我们可以在创建集群时分配一个服务账户,该集群有权从 Google Container Registry 中拉取镜像:

    *gcloud container clusters create "test-cluster" --zone "us-central1-a" --machine-type "n1-standard-1" --num-nodes "3" --service-account "XXXXXX@XXXXX.iam.gserviceaccount.com"*
    

    问候

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 2021-01-05
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      相关资源
      最近更新 更多