【问题标题】:Kubectl throws ImagePullBackOff Error while creating deployment via minikubeKubectl 在通过 minikube 创建部署时抛出 ImagePullBackOff 错误
【发布时间】:2020-04-02 06:42:01
【问题描述】:

尝试从图像创建部署

kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10

然后执行kubectl get pods 并使用

检查 hello-minikube pod 的日志

kubectl pod describe <pod-name> 抛出以下错误

  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  <unknown>          default-scheduler  Successfully assigned default/hello-minikube-797f975945-dmq26 to minikube
  Warning  Failed     42s                kubelet, minikube  Failed to pull image "k8s.gcr.io/echoserver:1.10": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp: lookup k8s.gcr.io on 192.168.64.1:53: read udp 192.168.64.3:56747->192.168.64.1:53: read: connection refused
  Warning  Failed     27s                kubelet, minikube  Failed to pull image "k8s.gcr.io/echoserver:1.10": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp: lookup k8s.gcr.io on 192.168.64.1:53: read udp 192.168.64.3:48279->192.168.64.1:53: read: connection refused
  Normal   BackOff    16s (x2 over 42s)  kubelet, minikube  Back-off pulling image "k8s.gcr.io/echoserver:1.10"
  Warning  Failed     16s (x2 over 42s)  kubelet, minikube  Error: ImagePullBackOff
  Normal   Pulling    4s (x3 over 42s)   kubelet, minikube  Pulling image "k8s.gcr.io/echoserver:1.10"
  Warning  Failed     4s (x3 over 42s)   kubelet, minikube  Error: ErrImagePull
  Warning  Failed     4s                 kubelet, minikube  Failed to pull image "k8s.gcr.io/echoserver:1.10": rpc error: code = Unknown desc = Error response from daemon: Get https://k8s.gcr.io/v2/: dial tcp: lookup k8s.gcr.io on 192.168.64.1:53: read udp 192.168.64.3:50616->192.168.64.1:53: read: connection refused

【问题讨论】:

    标签: docker go kubernetes kubectl minikube


    【解决方案1】:

    这个错误可以解决:

    1. 通过docker-machine ls检查是否有docker机器在运行

    2. 如果不存在机器,则使用docker-machine create &lt;machine-name&gt;创建一台

    3. 然后使用docker-machine ip &lt;machine-name&gt;获取本机IP

    4. 然后首先使用minikube delete删除任何现有的minikube集群,然后使用minikube start --vm-driver="virtualbox" --insecure-registry="docker-machine IP":80重新开始

    5. 然后运行kubectl create deployment hello-minikube --image=k8s.gcr.io/echoserver:1.10查看日志,会显示图片拉取成功。

    【讨论】:

      【解决方案2】:

      从事件来看,调用192.168.64.1:53 的 DNS 服务器以解析 k8s.gcr.io 似乎失败了。检查是否有在该 IP 上运行的 DNS 服务器。可以在 minikube 主机上的/etc/resolv.conf(如果是 Linux)中配置。

      【讨论】:

      • @Shivani Singhal 有什么进展吗?你解决了这个问题吗?您是否尝试过 gears 建议的步骤?
      猜你喜欢
      • 2021-10-30
      • 2019-09-06
      • 2019-07-08
      • 2022-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-18
      相关资源
      最近更新 更多