Kubernetes Pods`ErrImagePull`是什么意思?

时间:2020-10-11 04:43:12

标签: docker kubernetes microservices

我正处于Kubernetes的初级阶段。我刚刚使用以下命令创建了一个广告连播:

kubectl apply -f posts.yaml

它返回以下内容:

pod/posts created

之后,当我运行kubectl get pods

我发现结果如下:

NAME    READY   STATUS         RESTARTS   AGE
posts   0/1     ErrImagePull   0          2m4s

以下是我的posts.yaml文件:

apiVersion: v1
kind: Pod
metadata:
    name: posts
spec:
    containers:
        - name: posts
          image: bappa/posts:0.0.1

4 个答案:

答案 0 :(得分:3)

这意味着kubernetes无法从存储库中提取图像。回购协议是否可能需要一些授权才能允许图像拉出?

你可以做

kubectl describe pod posts

以获取更多信息。

答案 1 :(得分:0)

基本上ErrImagePull表示kubernetes无法找到图像,bappa/posts:0.0.1可能是工作节点中的注册表设置不正确,或者图像名称或标签不正确。

就像@Henry解释的那样,发出'kubectl describe pod posts并检查(并共享)错误消息。

答案 2 :(得分:0)

应用yaml并查看kubectl describe pod posts后,您可以清楚地看到以下错误:

  Normal   BackOff    21s               kubelet            Back-off pulling image "bappa/posts:0.0.1"
  Warning  Failed     21s               kubelet            Error: ImagePullBackOff
  Normal   Pulling    9s (x2 over 24s)  kubelet            Pulling image "bappa/posts:0.0.1"
  Warning  Failed     8s (x2 over 22s)  kubelet            Failed to pull image "bappa/posts:0.0.1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for bappa/posts, repository does not exist or may require 'docker login'
  Warning  Failed     8s (x2 over 22s)  kubelet            Error: ErrImagePull

Failed to pull image "bappa/posts:0.0.1": rpc error: code = Unknown desc = Error response from daemon: pull access denied for bappa/posts, repository does not exist or may require 'docker login'

这意味着您在PRIVATE posts存储库中拥有bappa映像,或者根本不使用映像。因此,如果这是您的私人存储库-您应获得授权。

也许您想使用cleptes/posts:0.01吗?

apiVersion: v1
kind: Pod
metadata:
    name: posts
spec:
    containers:
        - name: posts
          image: cleptes/posts:0.01

kubectl get pods posts
NAME    READY   STATUS    RESTARTS   AGE
posts   1/1     Running   0          26m10s

kubectl describe pod posts
  Normal  Pulling    20s   kubelet            Pulling image "cleptes/posts:0.01"
  Normal  Pulled     13s   kubelet            Successfully pulled image "cleptes/posts:0.01"
  Normal  Created    13s   kubelet            Created container posts
  Normal  Started    12s   kubelet            Started container posts

答案 3 :(得分:0)

如果您使用的是私有存储库,则需要获得授权。如果您已获得授权并且无法访问存储库,我认为这可能与您在 docker hub 上使用免费帐户有关,并且您拥有的私有存储库比免费存储库多。如果您尝试再次推送您的存储库,您应该收到错误“拒绝:请求的资源访问被拒绝”。 如果您公开您的存储库,它应该可以解决您的问题。