在 k8s/minikube 中无法从 GCR 中提取图像

Unable to pull images from GCR in k8s/minikube

当我的 pods 启动时,它们失败并显示 Failed to pull image "gcr.io/myproject/backend:staging": rpc error: code = Unknown desc = Error response from daemon: pull access denied for gcr.io/myproject/backend, repository does not exist or may require 'docker login'

这发生在 minikube,尽管事实上(我相信)我已经在 GCP 中正确创建了服务帐户,并根据 pods 命名空间中下载的密钥创建了一个 Secret位于并修补了默认服务帐户,即

kubectl --namespace=staging create secret docker-registry gcr-json-key --docker-server=https://gcr.io --docker-username=_json_key --docker-password="$(cat ~/Downloads/gcr-read-key.json)" --docker-email=me@email.com
kubectl --namespace=staging patch serviceaccount default -p '{"imagePullSecrets": [{"name": "gcr-json-key"}]}'

检查 GCR 图像 Web 视图显示了带有指定标签的存储库和图像。

我也尝试在部署文件中添加 imagePullSecrets 条目,但效果不佳。

您需要向您的服务帐户添加一个角色以访问 GCS 上的存储,最后注册表位于存储桶之上