为 containerd CLI ctr 配置对 GCR 的访问

问题描述

在用于从 GCR 中提取图像的 authentication methods 文档中,它只提到了如何为 docker 配置访问权限,但我必须在我的 GCE 虚拟机上使用容器 CLI ctr,由于某种原因,我无法使用 Docker。

错误

$ sudo ctr images pull gcr.io/<path>

gcr.io/<path>: resolving      |--------------------------------------|
elapsed: 0.3 s                                                     total:   0.0 B (0.0 B/s)                                        
ctr: Failed to resolve reference "gcr.io/<path>:latest": unexpected status code [manifests latest]: 401 Unauthorized

如何为其配置访问权限?

请注意,我不在 GKE 或其他 k8s 环境中。

解决方法

GKE 使用集群节点虚拟机实例上配置的服务帐号来推送和拉取镜像,如果集群和Container Registry 存储桶在同一个Google Cloud 项目中,则Compute Engine 默认服务帐号配置了相应的权限推或拉图像。

您可以使用以下命令在 GKE 集群上运行容器注册表:

kubectl run [NAME] --image=[HOSTNAME]/[PROJECT-ID]/[IMAGE]:[TAG]

要了解每个 [] 中的内容,您可以转到此 link

如果您想了解更多关于 GKE 命令的信息,您可以访问 here

希望对你有帮助