【问题标题】:Kubernetes Minikube Docker trying and failing to pull imageKubernetes Minikube Docker 尝试拉取镜像失败
【发布时间】:2018-07-13 12:20:09
【问题描述】:

我有一个名为 docker-hello-world 的 docker 映像——它所做的只是使用 JRE 将 Hello World 打印到日志中。经过测试,它工作正常。

然后,我将映像导入 Kubernetes Docker 并运行 - 仍然没有问题。

docker images -a
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
docker-hello-world                                     latest              9a161d166742        20 hours ago        83.17 MB
  1. 当我尝试使用 kubectl run docker-hello-world --image=docker-hello-world:latest 将其部署到 Kubernetes 时,这里出了点问题 - 我也尝试了镜像 ID,但我不明白为什么它找不到镜像。

它说部署已创建。

kubectl get deployments
NAME                 DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
docker-hello-world   1         1                1                   0           24s

kubectl get pods
NAME                                                READY     STATUS         RESTARTS   AGE
docker-hello-world-67c745cff4-sv77d   0/1       ErrImagePull   0          43s

日志:

kubectl logs docker-hello-world-67c745cff4-sv77d
Error from server (BadRequest): container "docker-hello-world" in pod "docker-hello-world-67c745cff4-sv77d" is waiting to start: trying and failing to pull image

不知道为什么找不到图片。

但如果我在 Minikube 中这样做:

docker build -t dummy:v1 ~/eclipse-workspace/HelloWorld/bin/  

(我真的不想再次生成图像)

docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
dummy                                                  v1                  beae3bfd2327        32 seconds ago      83.17 MB

kubectl run --image=dummy:v1 dummy
deployment "dummy” created

kubectl get deployments
NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
dummy          1                1           1                   0           11s

kubectl get pods
NAME                            READY     STATUS      RESTARTS   AGE
dummy-8496dd7d84-t4h66          0/1       Completed   4          1m

kubectl logs dummy-8496dd7d84-t4h66
Hello, World

好像没问题

【问题讨论】:

标签: image docker kubernetes minikube


【解决方案1】:

镜像docker-hello-world:latest的版本标签为latest,表示默认ImagePullPolicy为Always(v1.9.x及之后版本见pkg/apis/core/v1/defaults.go)。它将尝试从集线器中提取图像而不使用已经存在的图像。

一个选项是设置一个特定的标签而不是latest。

【讨论】:

    猜你喜欢
    • 2019-12-08
    • 2021-01-21
    • 2019-11-26
    • 2023-04-03
    • 2018-12-06
    • 2018-08-31
    • 2020-08-09
    • 2018-04-13
    • 2018-12-18
    相关资源
    最近更新 更多