KubernetesMinikubeDocker

操作描述

通过Docker构建镜像至本地仓库后,然后编写应用的Kubernetes配置文件,执行kubectl apply -f blog-service.yml命令后查看Dashboard发现启动失败,具体报错如下:

报错:Container image “com.fcant/blog:v1” is not present with pull policy of Never

  1. Container image "com.fcant/blog:v1" is not present with pull policy of Never
  2. Error: ErrImageNeverPull

在Minikube不能拉取Docker本地镜像的问题 - 图1

解决方案

1、将镜像构建至Minikube镜像仓库中(参考官网第八种解决方案:https://minikube.sigs.k8s.io/docs/handbook/pushing/

根据官网描述,此时镜像在Docker中,而不在Minikube集群中,所以在Minikube中找不到对应的镜像。

在Minikube不能拉取Docker本地镜像的问题 - 图2

查看Minikube Cluster Image,发现确实没有应用镜像

  1. minikube image ls

在Minikube不能拉取Docker本地镜像的问题 - 图3

执行Minikube的镜像构建命令,将应用构建至Minikube Cluster Image

  1. minikube image build -t com.fcant/blog:v1 .

在Minikube不能拉取Docker本地镜像的问题 - 图4

再次查看Minikube Cluster Image,可以看到对应的应用镜像了。

在Minikube不能拉取Docker本地镜像的问题 - 图5

到Kubernetes Dashboard中可以看到应用程序已经探测到镜像并启动成功:

在Minikube不能拉取Docker本地镜像的问题 - 图6

查看应用日志也一切正常

在Minikube不能拉取Docker本地镜像的问题 - 图7