我运行了eval $(minikube docker-env)
,然后构建了一个docker容器。当我在我的主机上运行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"
我的imagePullPolicy
是Always
。
是什么造成的?其他的分离舱在当地工作。
5条答案
按热度按时间gr8qqesn1#
你并不是从你的本地注册表中拉取,你使用的是你以前下载的镜像或者你本地构建的镜像,因为你指定的是
imagePullPolicy: Always
,它总是会尝试从注册表中拉取它。您的镜像不包含特定的docker注册表
personalisation-customer:latest
,docker将理解index.docker.io/personalisation-customer:latest
,并且这是一个不存在于公共docker注册表中的镜像。所以你有2个选项
imagePullPolicy: IfNotPresent
或上传图像到一些注册表。sg24os4d2#
本地Docker缓存不是注册表。Kubernetes尝试从Dockerhub(默认注册表)下载镜像,因为您将
iMagePullPolicy
设置为Always
。将其设置为Never
,因此Kubernetes使用本地镜像。syqv5f0l3#
我有同样的问题。问题是没有提到图像版本。我用
作为替代,
djmepvbi4#
对于minikube,进行如下更改:
1.使用以下命令评估docker env:eval $(迷你库对接器-环境)
1.构建Docker映像:docket build -t my-image
1.在yaml文件的pod规范中,将图像名称仅设置为“my-image”。
1.在yaml文件中将imagePullPolicy设置为Never。下面是示例:
rm5edbpk5#
您可以使用ssh向minikube发送ssh
然后把图像
确保
imagePullPolicy: IfNotPresent
然后运行部署