【问题标题】:Kubernetes pod status ImagePullBackOffKubernetes pod 状态 ImagePullBackOff
【发布时间】:2020-10-26 15:35:28
【问题描述】:

我正在尝试基于来自本地机器而不是来自公共注册表的容器映像创建一个 pod。我正在检索 pod 的状态为 ImagePullBackoff 码头工人文件

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        

  

非常感谢您的帮助,谢谢

【问题讨论】:

    标签: docker kubernetes kubernetes-pod


    【解决方案1】:

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

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

    • 例如,对于 minikube,使用本地映像的过程如下所述:https://stackoverflow.com/a/42564211/2784039
    • 使用 kind,您应该使用命令 kind load docker-image <tensor-keras:latest> o 将图像加载到您的集群中
    • 使用 k3s,如果 imagePullPolicy 设置为 Never,使用本地图像应该可以开箱即用

    【讨论】:

    • 感谢@fjammes 的精彩帮助,我没有使用 minikube,或者 k3s,我使用的是 k8s。我会尝试你的解决方案,并会尽快更新你
    • 嗨@fjammes,我试过这个解决方案,现在状态是crashloopbackoff。
    • @abaairdavis 由于访问图像的根本问题已解决,请考虑创建另一个问题,其中包含特定于PodCrashloopbackoff 状态的信息,例如$ kubectl describe pod server$ kubectl logs server
    • 嗨,感谢@DawidKruk 的出色帮助。我已经解决了这个问题,问题是 docker 镜像文件
    猜你喜欢
    • 2016-09-15
    • 2019-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-03
    • 1970-01-01
    • 2019-07-08
    • 2019-09-19
    相关资源
    最近更新 更多