Kubernetes窗格状态ImagePullBackOff

时间:2020-10-26 15:35:28

标签: docker kubernetes kubernetes-pod

我试图基于本地计算机(而不是公共注册表)的容器映像创建容器。我正在将pod的状态检索为ImagePullBackoff Docker文件

FROM tensorflow/tensorflow:latest-py3
RUN pip install -q keras==2.3.1
RUN pip install pillow
RUN mkdir -p /app/src
WORKDIR /app/src
COPY . ./
EXPOSE 31700
CMD ["python", "test.py"]

构建docker映像

docker build -t tensor-keras .

在不使用Yaml文件的情况下创建pod

kubectl run server --image=tensor-keras:latest

Yaml文件

apiVersion: v1 
kind: Pod
metadata:
 name: server
 labels: 
    app: server
spec:
 containers:
  - name:  tensor-keras
    image: tensor-keras:latest
    ports:
    - containerPort: 31700

我正在将Pod的状态更改为

  NAME          READY   STATUS             RESTARTS   AGE
  server         0/1   ImagePullBackOff      0        27m        

  

非常感谢您的帮助

1 个答案:

答案 0 :(得分:2)

默认情况下,Kubernetes将尝试从远程容器存储库中提取图像。在您的情况下,您的映像名称没有容器存储库URL的前缀,因此在大多数情况下,它将默认名称设置为Docker Hub。

imagePullPolicy字段的值是什么?对于您的用例,应将其设置为Never以使用本地图像。 您正在使用哪个工具来运行Kubernetes实例?

  • 例如,对于minikube,此处描述了使用本地图像的过程:https://stackoverflow.com/a/42564211/2784039
  • 请亲切地使用命令kind load docker-image <tensor-keras:latest>将图像加载到cluser中
  • 对于k3,如果imagePullPolicy设置为Never,则使用本地图像应该是开箱即用的