首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes:--image-pull policy总是不起作用

Kubernetes:--image-pull policy总是不起作用
EN

Stack Overflow用户
提问于 2017-08-27 22:24:42
回答 3查看 18.9K关注 0票数 18

我有一个Kubernetes部署,它使用image:test:latest (不是真实的镜像名称,但它是最新的标记)。此图像位于docker hub上。我刚刚把新版本的test:latest推到了dockerhub上。我期待着我的pod在Kubernetes中有一个新的部署,但是什么也没有发生。

我已经像这样创建了我的部署:

代码语言:javascript
复制
kubectl run sample-app --image=`test:latest` --namespace=sample-app --image-pull-policy Always

为什么新的镜像推送后没有触发新的部署?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-08-27 23:38:02

Kubernetes是,而不是,正在寻找新版本的图像。镜像拉取策略指定如何获取镜像以运行容器。Always意味着它将在每次启动容器时尝试拉取一个新版本。要查看更新,您需要删除Pod (而不是部署)-新创建的Pod将运行新镜像。

没有直接的方法可以让Kubernetes使用新镜像自动更新正在运行的容器。这将是连续交付系统的一部分(可能使用带有新sha256sum或图像标签的kubectl set image,但不是latest)。

票数 23
EN

Stack Overflow用户

发布于 2020-12-20 05:09:37

强制更新的一种方法是在您的CI脚本中运行此命令(在推送新映像之后,并在应用的yaml中将image-pull-policy设置为Always ):

kubectl rollout restart deployment/<name> --namespace=<namespace>

在Azure Devops中,输入"rollout“作为命令,使用上面的命名空间功能,然后输入"restart ...”在参数字段中。

票数 5
EN

Stack Overflow用户

发布于 2020-02-05 02:07:04

如果您使用的是yml文件,请使用执行部署

代码语言:javascript
复制
kubectl apply -f myfile.yml

代码语言:javascript
复制
imagePullPolicy: Always

在您的文件中,k8s将不会拉出新的图像。您首先需要删除pod,K8s部署会自动拉取镜像。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45905999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档