【问题标题】:i/o timeout ImagePullBackOff issue on minikube docker image for pod on fedora32fedora32 上 pod 的 minikube docker 映像上的 i/o 超时 ImagePullBackOff 问题
【发布时间】:2020-10-30 20:36:11
【问题描述】:

当我从 docker 从 kubernates pod 中提取图像时,出现 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 正在运行。

这是我看到 pod 时显示的内容。

[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**

显然,Pod 无法访问互联网以提取图像。看起来我缺少一些 dns 配置来使 minikube 从互联网上提取图像。帮我解决这个问题。

【问题讨论】:

    标签: docker fedora minikube


    【解决方案1】:

    由于 Fedora 32 的变化,安装体验比平时稍微复杂一些,目前需要执行一些额外的手动步骤,具体取决于您机器的配置。

    请参阅:docker-for-linux-fedora32

    还请查看:cannot-pull-imagecould-not-resolve-hostcurl-6-could-not-resolve-hosterr-docker-daemon

    请记住,Fedora 32 上的 Docker 当前状态并不理想。缺少官方软件包可能会困扰一些人,并且有一个issue upstream 讨论了这个问题。请参阅:docker-fedora32-example

    看看这个在 Fedora32 上安装的 Docker - docker-on-fedora32

    要安装 Docker Engine,您需要其中之一的 64 位版本 Fedora 版本:

    • Fedora 30
    • Fedora 31

    我建议您使用不同的驱动程序,例如 kvm 或 virtualbox - minikube-drivers。看看这个指南 - minikube-kubernetes

    【讨论】:

    • 非常感谢您的回答。是的,fedora 32 确实让我很痛苦。你能告诉我哪个是使用 docker 和 kubernates 的理想版本的 centos 桌面操作系统吗?我什至准备清理整个操作系统以拥有一个稳定的无错误环境。在少数网站中,他们建议我使用 HTTP_PROXY .. 像 docs.docker.com/network/proxy 我不确定我必须使用什么代理 IP。
    • 嗨,很高兴听到它有帮助。您可以投票并接受我的回答,以便在未来的社区中更加明显。我建议您创建另一个帖子,您将在其中询问使用 docker 和 kubernetes 的理想版本的 centos 桌面操作系统 - 它符合 Stackoverflow 的政策。你可以把链接贴在这里,我去看看。
    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 2017-11-24
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 2021-01-03
    • 2021-11-29
    • 2018-04-13
    相关资源
    最近更新 更多