【发布时间】:2019-03-05 07:39:06
【问题描述】:
我有一个 Google Kubernetes Engine 集群,直到最近它还在愉快地从 Google Container Registry 存储桶中提取私有容器映像。我没有更改任何内容,但是现在当我更新我的 Kubernetes 部署时,它无法启动新的 pod,并且我收到以下事件:
Normal Pulling 14s kubelet, <node-id> pulling image "gcr.io/cloudsql-docker/gce-proxy:latest"
Normal Pulling 14s kubelet, <node-id> pulling image "gcr.io/<project-id>/backend:62d634e"
Warning Failed 14s kubelet, <node-id> Failed to pull image "gcr.io/<project-id>/backend:62d634e": rpc error: code = Unknown desc = unauthorized: authentication required
Warning Failed 14s kubelet, <node-id> Error: ErrImagePull
Normal Pulled 13s kubelet, <node-id> Successfully pulled image "gcr.io/cloudsql-docker/gce-proxy:latest"
Normal Created 13s kubelet, <node-id> Created container
Normal Started 13s kubelet, <node-id> Started container
Normal BackOff 11s (x2 over 12s) kubelet, <node-id> Back-off pulling image "gcr.io/<project-id>/backend:62d634e"
Warning Failed 11s (x2 over 12s) kubelet, <node-id> Error: ImagePullBackOff
我已经检查了以下内容,它们似乎都应该是这样的:
- 容器及其标签确实存在,并且是正确的。
- GKE 集群的节点池/VM 实例拥有
storage-ro权限 - Google Container Registry 存储桶和 GKE 集群在同一个项目中
我还尝试禁用和重新启用 container.googleapis.com 和 containerregistry.googleapis.com 服务,但这没有帮助。
Container Registry 的 Google 文档指出:
Kubernetes Engine 集群会自动配置为可以访问 从同一个项目的 Container Registry 中拉取私有镜像。 您无需执行其他步骤即可配置身份验证 如果注册表和集群在同一个 Cloud 项目中。
但似乎并非如此。
谁能进一步说明可能发生的事情?还是要尝试其他步骤?
【问题讨论】:
-
嘿,杰森,我也面临同样的问题。你有解决办法吗?
标签: google-kubernetes-engine google-container-registry