当我从kubernates pod的docker中提取图像时,我收到ImagePullBackOff错误。我正在使用Fedora32并在docker上运行一个minikube。
''
[prem@localhost simplek8s]$ **docker ps --all**
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
070fba4347b7 **gcr.io/k8s-minikube/kicbase:v0.0.13** "/usr/local/bin/entr…" 3 days ago Up About an hour 127.0.0.1:32771->22/tcp, 127.0.0.1:32770->2376/tcp, 127.0.0.1:32769->5000/tcp, 127.0.0.1:32768->8443/tcp minikube
85a476d91b28 hello-world "/hello" 3 days ago Exited (0) 3 days ago musing_fermat
dbf5151bc72e frontend_tests "docker-entrypoint.s…" 6 days ago Exited (137) 3 days ago frontend_tests_1
e47486560719 frontend_web "docker-entrypoint.s…" 6 days ago Exited (137) 3 days ago frontend_web_1
75933fdf45c4 274c1d9065e6 "/bin/sh -c 'npm ins…" 6 days ago Created romantic_sinoussi
ab0d87295579 274c1d9065e6 "/bin/sh -c 'npm ins…" 6 days ago Created
''
在上面的容器中,您可以看到minikube正在运行。
这就是当我看到吊舱时所显示的。
[prem@localhost simplek8s]$ **kubectl get pods**
NAME READY STATUS RESTARTS AGE
busybox 0/1 ImagePullBackOff 0 47h
client-pod 0/1 ImagePullBackOff 0 2d
dnsutils 0/1 ImagePullBackOff 0 21m
nginx 0/1 ImagePullBackOff 0 47h
[prem@localhost simplek8s]$ **kubectl describe pods**
Name: busybox
Namespace: default
Priority: 0
Node: minikube/192.168.49.2
Start Time: Wed, 28 Oct 2020 02:05:29 +0530
Labels: run=busybox
Annotations: <none>
Status: Pending
IP: 172.17.0.2
IPs:
IP: 172.17.0.2
Containers:
busybox:
Container ID:
Image: busybox
Image ID:
Port: <none>
Host Port: <none>
State: Waiting
Reason: ImagePullBackOff
Ready: False
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-zr7nz (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
default-token-zr7nz:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-zr7nz
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
**Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute** op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Pulling 60m (x4 over 63m) kubelet Pulling image "busybox"
Warning Failed 60m **kubelet Failed to pull image "busybox": rpc error: code = Unknown desc = Error response from daemon: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on 192.168.49.1:53: read udp 192.168.49.2:38852->192.168.49.1:53: i/o timeout**
Warning Failed 13m (x13 over 62m) kubelet Error: ErrImagePull
Warning Failed 8m17s (x226 over 62m) kubelet Error: ImagePullBackOff
Normal BackOff 3m12s (x246 over 62m) kubelet Back-off pulling image "busybox"
[myname@localhost simplek8s]$ **minikube ssh**
docker@minikube:~$ cat /etc/resolv.conf
nameserver 192.168.49.1
options ndots:0
docker@minikube:~$ **curl google.com**
curl: (6) **Could not resolve host: google.com**
显然,这些吊舱无法访问互联网来获取图像。看起来我错过了一些dns配置,使minikube从互联网上提取图像。帮我解决这个问题。
由于Fedora 32中的更改,安装体验比平时稍微复杂一些,目前需要执行一些额外的手动步骤,具体取决于您的机器配置。
请参阅:docker-for-linux-fedora32。
还可以看看:无法提取映像,无法解析主机,curl-6-could-not-resolve-host,错误docker守护进程。
请记住,Fedora 32上Docker的当前状态并不理想。缺乏官方方案可能会让一些人感到困扰,而且在上游有一个问题需要讨论。请参阅:docker-fodora32-示例。
看看这个安装Docker on Fedora32-Docker-on-Fedora32。
要安装Docker引擎,您需要其中一个的64位版本Fedora版本:
- Fedora 30
- Fedora 31
我建议您使用不同的驱动程序,例如kvm或virtualbox-minikube驱动程序。看看这个指南-minikube kubernetes。