Minikube 无法从本地注册表中拉取镜像

jbr*_*own 1 kubernetes minikube

我跑了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"
Run Code Online (Sandbox Code Playgroud)

我的imagePullPolicyAlways

什么可能导致这种情况?其他 Pod 正在本地工作。

jhe*_*dez 6

您并不是完全从本地注册表中提取,而是使用以前下载的映像或本地构建的映像,因为您指定imagePullPolicy: Always这将始终尝试从注册表中提取它。

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

所以你有 2 个选项imagePullPolicy: IfNotPresent或者将图像上传到某个注册表。