我正处于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
答案 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 上使用免费帐户有关,并且您拥有的私有存储库比免费存储库多。如果您尝试再次推送您的存储库,您应该收到错误“拒绝:请求的资源访问被拒绝”。 如果您公开您的存储库,它应该可以解决您的问题。