gpt4 book ai didi

Docker for Windows Kubernetes pod 在创建新部署后获取 ImagePullBackOff

转载 作者:行者123 更新时间:2023-12-02 06:39:45 27 4
gpt4 key购买 nike

我已经成功构建了 Docker 镜像并在 Docker 群中运行它们。当我尝试构建镜像并使用 Docker Desktop 的 Kubernetes 集群运行它时:

docker build -t myimage -f myDockerFile .

(上面成功在docker本地registry中创建了镜像)

kubectl run myapp --image=myimage:latest

(据我了解,这与使用 kubectl create 部署命令相同)

上面的命令成功创建了一个Deployment,但是当它创建Pod时,Pod状态总是显示:

NAME                                   READY  STATUS            RESTARTS  AGE 
myapp-<a random alphanumeric string> 0/1 ImagePullBackoff 0 <age>

我不确定为什么拉取镜像时遇到问题 - 它可能不知道 docker 本地镜像在哪里吗?

最佳答案

我刚刚遇到了完全相同的问题。归结为imagePullPolicy:

PC:~$ kubectl explain deployment.spec.template.spec.containers.imagePullPolicy
KIND: Deployment
VERSION: extensions/v1beta1

FIELD: imagePullPolicy <string>

DESCRIPTION:
Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always
if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated.
More info:
https://kubernetes.io/docs/concepts/containers/images#updating-images

具体来说,这部分内容是:如果指定了:最新标签,则默认为始终

这意味着,您创建了一个本地镜像,但是,因为您使用 :latest ,所以它会尝试在您配置的任何远程存储库(默认为 docker hub)中查找它,而不是使用本地镜像。只需将命令更改为:

kubectl run myapp --image=myimage:latest --image-pull-policy Never

kubectl run myapp --image=myimage:latest --image-pull-policy IfNotPresent

关于Docker for Windows Kubernetes pod 在创建新部署后获取 ImagePullBackOff,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53822385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com