这是一个真正的难题,因为一切都在昨天之前运行良好多年。我有一个谷歌云帐户并正确设置了计费。我在我的GCR注册表中有私有镜像,我可以从我的笔记本电脑(MacBook Pro with Big Sur 11.4)上执行“docker pull”和“docker push”而没有任何问题。
我在此详细说明的问题是,在谷歌云控制台中删除项目后,昨天开始发生的,然后使用相同名称从头开始创建它。以前的项目没有问题拉取GCR镜像,新项目无法拉取相同的镜像。我现在已经使用云控制台创建了新的空测试项目,使用各种名称,并使用默认GKE值创建了新的群集。但是所有这些新问题仍然存在。
当我使用kubectl在GKE上创建使用同一项目中的任何GCR镜像的部署时,我会收到ErrImagePull错误。当我“describe”无法加载镜像的pod时,错误(隐藏了项目ID)如下:
当我使用来自笔记本电脑的kubectl时(包括清除并创建具有正确凭据的新.kube/config文件后),出现了“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 [manifests 1.0.0]: 401 Unauthorized.”错误,但是当我使用云控制台选择“部署到GKE”以获取GCR映像来设置部署时,情况完全相同...没有涉及kubectl。
如果我ssh进入任何这些新集群中的节点并尝试“docker pull” GCR映像(在同一项目中),则会出现类似的错误:“Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication”.
我在此详细说明的问题是,在谷歌云控制台中删除项目后,昨天开始发生的,然后使用相同名称从头开始创建它。以前的项目没有问题拉取GCR镜像,新项目无法拉取相同的镜像。我现在已经使用云控制台创建了新的空测试项目,使用各种名称,并使用默认GKE值创建了新的群集。但是所有这些新问题仍然存在。
当我使用kubectl在GKE上创建使用同一项目中的任何GCR镜像的部署时,我会收到ErrImagePull错误。当我“describe”无法加载镜像的pod时,错误(隐藏了项目ID)如下:
当我使用来自笔记本电脑的kubectl时(包括清除并创建具有正确凭据的新.kube/config文件后),出现了“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 [manifests 1.0.0]: 401 Unauthorized.”错误,但是当我使用云控制台选择“部署到GKE”以获取GCR映像来设置部署时,情况完全相同...没有涉及kubectl。
如果我ssh进入任何这些新集群中的节点并尝试“docker pull” GCR映像(在同一项目中),则会出现类似的错误:“Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication”.
我从多篇文章中了解到,GKE无需设置特殊授权即可从同一项目中拉取GCR镜像,并且过去从未遇到过此问题。
希望我不是唯一一个陷入孤岛的人。提前感谢您的帮助!