Minikube无法从本地注册表中提取图像

时间:2017-09-07 16:56:27

标签: kubernetes minikube

我跑了eval $(minikube docker-env)然后建了一个码头工人容器。当我在主机上运行docker images时,我可以看到图像。当我运行minikube ssh然后docker images我就能看到它。

当我尝试运行它时,pod无法启动。 kubectl describe pod给出:

14m     3m      7   kubelet, minikube   spec.containers{quoting-crab-customer-refresh-cache-cron}   Normal      Pulling         pulling image "personalisation-customer:latest"
14m     3m      7   kubelet, minikube   spec.containers{quoting-crab-customer-refresh-cache-cron}   Warning     Failed          Failed to pull image "personalisation-customer:latest": rpc error: code = 2 desc = Error: image library/personalisation-customer:latest not found
14m     2s      66  kubelet, minikube                                   Warning     FailedSync      Error syncing pod
14m     2s      59  kubelet, minikube   spec.containers{quoting-crab-customer-refresh-cache-cron}   Normal      BackOff         Back-off pulling image "personalisation-customer:latest"

我的imagePullPolicyAlways

可能导致这种情况的原因是什么?其他豆荚在当地工作。

4 个答案:

答案 0 :(得分:4)

您并没有完全从本地注册表中删除,使用以前下载的图像或本地构建的图像,因为您指定imagePullPolicy: Always这将始终尝试从注册表中删除它。

您的映像不包含特定的docker注册表personalisation-customer:latest,以便docker理解index.docker.io/personalisation-customer:latest这是一个公共docker注册表中不存在的映像。

因此,您有2个选项imagePullPolicy: IfNotPresent或将图像上传到某个注册表。

答案 1 :(得分:1)

本地Docker缓存不是注册表。 Kubernetes尝试从Dockerhub(默认注册表)下载图像,因为您将iMagePullPolicy设置为Always。将其设置为Never,以便Kubernetes使用本地图像。

答案 2 :(得分:0)

我有同样的问题。我发生的事情没有提到图像版本。我用

kubectl run testapp1 --image=<image> --image-pull-policy=IfNotPresent

但是带有该版本的图像最终对我有用。

kubectl run testapp1 --image=<image>:<version> --image-pull-policy=IfNotPresent

答案 3 :(得分:0)

对于minikube,进行如下更改:

  1. 使用以下方法评估docker env: 评估$(minikube docker-env)

  2. 构建docker映像: 清单构建-t我的图像

  3. 在Yaml文件的pod规范中,将图像名称设置为仅“ my-image”。

  4. 在您的Yaml文件中将imagePullPolicy设置为“从不”。这是示例:

    apiVersion:
    kind:
    metadata:
    spec:
      template:
         metadata:
            labels:
               app: my-image
      spec:
         containers:
           - name: my-image
           image: "my-image"
           imagePullPolicy: Never
    
相关问题