主要针对:google-cloud-platform
我要解决的总体问题是;从私有 Kubernetes 的 Google Container Registry 中提取图像。
更新刚刚添加了 heptio-contour 如果有人遇到这个问题 - 因为 Heptio 的好人已经创建了问题中提到的脚本 - 谢谢。
第一步是使用带有 JSON 密钥的服务帐户 - 如此处所述。
但是当我运行时:
cat gcr-sa-key.json | docker login -u _json_key --password-stdin https://gcr.io
我应该能够登录 docker,但它失败了:
cat gcr-sa-key.json | docker login -u _json_key --password-stdin https://gcr.io
Error response from daemon: Get https://gcr.io/v2/: unauthorized: GCR login failed. You may have invalid credentials. To login successfully, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication
注意:我gcr-sa-key.json从运行这个文件中得到了这个文件——请记住,我总体上是在尝试从 Kubernetes 中使用它。
我希望这是一个谷歌问题,但是/如果我按照 Heptio 文档中的描述运行,我会得到:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 50s default-scheduler Successfully assigned default/<image-name>-deployment-v1-844568c768-5b2rt to my-cluster-digitalocean-1-7781
Normal Pulling 37s (x2 over 48s) kubelet, my-cluster-digitalocean-1-7781 pulling image "gcr.io/<project-name><image-name>:v1"
Warning Failed 37s (x2 over 48s) kubelet, my-cluster-digitalocean-1-7781 Failed to pull image "gcr.io/<project-name>/<image-name>:v1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for gcr.io/<project-name>/<image-name>, repository does not exist or may require 'docker login'
Warning Failed 37s (x2 over 48s) kubelet, my-cluster-digitalocean-1-7781 Error: ErrImagePull
Normal SandboxChanged 31s (x7 over 47s) kubelet, my-cluster-digitalocean-1-7781 Pod sandbox changed, it will be killed and re-created.
Normal BackOff 29s (x6 over 45s) kubelet, my-cluster-digitalocean-1-7781 Back-off pulling image "gcr.io/<project-name>/<image-name>:v1"
Warning Failed 29s (x6 over 45s) kubelet, my-cluster-digitalocean-1-7781 Error: ImagePullBackOff
只是信息。这可能是相关的,我在 github 上看到了这个问题。