gpt4 book ai didi

docker - GKE 无法从 GCR 拉取镜像

转载 作者:行者123 更新时间:2023-12-04 14:54:43 27 4
gpt4 key购买 nike

这是一个真正令人头疼的问题,因为直到昨天,一切都运行良好多年。我有一个谷歌云帐户并且计费设置正确。我的 GCR 注册表中有私有(private)图像,我可以从我的笔记本电脑(配备 Big Sur 11.4 的 MacBook Pro)“docker pull”和“docker push”,没有任何问题。
我在这里详述的问题昨天开始发生,因为我在谷歌云控制台中删除了一个项目,然后使用相同的名称从头开始重新创建它。之前的项目拉GCR镜像没问题,新项目拉不了同样的镜像。我现在使用云控制台创建了具有各种名称的新的空测试项目,以及使用默认 GKE 值的新集群。但是这个新问题仍然存在于所有人身上。
当我使用 kubectl 在 GKE 上创建使用同一项目中的任何 GCR 镜像的部署时,我收到 ErrImagePull 错误。当我“描述”不会加载图像的 pod 时,错误(项目 ID 被遮挡)是:

Failed to pull image "gcr.io/test-xxxxxx/test:1.0.0": rpc error: code= Unknown desc = failed to pull and unpack image "gcr.io/test-xxxxxx/test:1.0.0": failed to resolve reference"gcr.io/test-xxxxxx/test:1.0.0": unexpected status code [manifests1.0.0]: 401 Unauthorized.


当我从我的笔记本电脑使用 kubectl 时会发生这种情况(包括在删除并使用正确的凭据创建新的 .kube/config 文件之后),但是当我使用云控制台通过选择“部署到 GKE”来设置部署时发生的情况完全相同' 对于 GCR 图像......不涉及 kubectl。
如果我通过 ssh 进入任何这些新集群中的节点并尝试“docker pull”一个 GCR 镜像(在同一个项目中),我会收到类似的错误:

Error response from daemon: unauthorized: You don't have the neededpermissions to perform this operation, and you may have invalidcredentials. To authenticate your request, follow the steps in:https://cloud.google.com/container-registry/docs/advanced-authentication


我从众多文章中了解到,无需为 GKE 设置特殊授权即可从同一项目中提取 GCR 镜像,而且我过去从未遇到过此问题。
我希望我不是这个荒岛上唯一的人。在此先感谢您的帮助!

最佳答案

我尝试实现设置,但在 GKE 集群和集群节点上都遇到了同样的错误。这是因为集群节点上对云存储 API 的访问被“禁用”,这可以从“云 API 访问范围”部分下的节点(虚拟机实例)详细信息进行验证。
我们可以通过将“访问范围”更改为“为每个 API 设置访问权限”并在创建集群时修改节点池 -> 默认池 -> 安全部分中对特定 API 的访问权限来纠正此问题。在我们的例子中,我们至少需要对 Storage API 的“只读”访问权限才能访问存储图像的 Cloud Storage。 Changing the service account and access scopes for an instance想要查询更多的信息。

关于docker - GKE 无法从 GCR 拉取镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68305277/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com