Kubernetes pod 状态 ImagePullBackOff

Kubernetes pod status ImagePullBackOff

我正在尝试基于来自本地计算机而非 public 注册表的容器映像创建 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        

  

非常感谢您的帮助,谢谢

默认情况下,Kubernetes 会尝试从远程容器存储库中拉取您的镜像。在您的情况下,您的图像名称没有以容器存储库 url 为前缀,因此它使用默认名称,大多数情况下它设置为 Docker Hub.

imagePullPolicy 字段的值是多少?对于你 use-case 应该设置为 Never 以使用本地图像。 您使用哪种工具来 运行 您的 Kubernetes 实例?

  • 例如,对于 minikube,这里描述了使用本地图像的过程:
  • 对于 kind,你应该使用命令 kind load docker-image <tensor-keras:latest> o 在你的 cluser
  • 中加载图像
  • 对于 k3s,如果 imagePullPolicy 设置为 Never
  • ,使用本地图像应该开箱即用