【问题标题】:Minikube: unable to pull image from DockerHub (public repo)Minikube:无法从 DockerHub(公共回购)中提取图像
【发布时间】:2022-01-16 06:02:53
【问题描述】:

我正在 ArchLinux 机器上安装全新的 Minikube,使用 Docker 作为 Minikube 驱动程序.

我使用minikube start 命令启动了minikube“集群”。 docker container ls 告诉我们它已经启动并运行:

CONTAINER ID   IMAGE                                 COMMAND                  CREATED          STATUS          PORTS                                                                                                                                  NAMES
d86070af0c21   gcr.io/k8s-minikube/kicbase:v0.0.28   "/usr/local/bin/entr…"   50 minutes ago   Up 50 minutes   127.0.0.1:49162->22/tcp, 127.0.0.1:49161->2376/tcp, 127.0.0.1:49160->5000/tcp, 127.0.0.1:49159->8443/tcp, 127.0.0.1:49158->32443/tcp   minikube

我正在尝试运行一个简单的 nginx pod,使用以下命令:kubectl run my-nginx --image nginx

由于我是从公共存储库中提取公共图像,因此我希望我不需要任何身份验证。但是describe pod 子命令显示:

Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  47s                default-scheduler  Successfully assigned default/my-nginx to minikube
  Normal   BackOff    31s                kubelet            Back-off pulling image "nginx"
  Warning  Failed     31s                kubelet            Error: ImagePullBackOff
  Normal   Pulling    19s (x2 over 46s)  kubelet            Pulling image "nginx"
  Warning  Failed     4s (x2 over 31s)   kubelet            Failed to pull image "nginx": rpc error: code = Unknown desc = Error response from daemon: Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
  Warning  Failed     4s (x2 over 31s)   kubelet            Error: ErrImagePull

当我尝试从 minikube 容器内 curl 在错误消息中找到的 URL 时,它表明需要身份验证:

patres@arch:~$ minikube ssh                                                                        

docker@minikube:~$ curl https://registry-1.docker.io/v2/
{"errors":[{"code":"UNAUTHORIZED","message":"authentication required","detail":null}]}

当我尝试使用 docker pull nginx 命令从主机中提取该图像时,图像被提取,不需要身份验证。

我也尝试以这种方式创建 kubernetes 机密,然后使用带有该机密的 YAML 启动 pod,但无济于事。

kubectl create secret docker-registry regcred --docker-server=https://registry-1.docker.io/v2/ --docker-username=myusername --docker-password=mypass --docker-email=my@email.com

最后,这个问题似乎不是 DockerHub 独有的,因为如果我关注 官方 minikubes documentation 并启动默认的 hello-minikube 部署:

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

我得到同样的ImagePullBackOff 错误:

$ kubectl get pod hello-minikube-6ddfcc9757-zdzz2                                           
NAME                              READY   STATUS             RESTARTS   AGE
hello-minikube-6ddfcc9757-zdzz2   0/1     ImagePullBackOff   0          6m11s

【问题讨论】:

    标签: kubernetes minikube dockerhub


    【解决方案1】:

    通过以下操作之一解决了问题(不确定具体是通过哪个操作):

    • 终止我的 VPN 连接
    • 删除 minikube 容器和映像
    • 重新启动我的电脑
    • minikube start重新开始

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 2015-06-28
      • 1970-01-01
      • 2021-11-17
      • 2020-11-03
      • 1970-01-01
      相关资源
      最近更新 更多