This question already has answers here:
Kubernetes: kubectl apply does not update pods when using “latest” tag
(4个答案)
9个月前关闭。
问题
关于Slack和Stack Overflow的一个常见问题是,当镜像标签未更改但基础镜像已更改时,如何触发对Deployment / RS / RC的更新。
考虑:
有一个带有镜像foo的现有部署:Latest 用户构建一个新镜像foo:最新的 用户将foo:最新推送到其注册表 用户想要在这里做一些事情,以告诉Deployment提取新镜像并滚动更新现有Pod
例如:
现在,我对multiWorker镜像进行了更改
并重新部署,但不获取最新镜像?
(4个答案)
9个月前关闭。
问题
关于Slack和Stack Overflow的一个常见问题是,当镜像标签未更改但基础镜像已更改时,如何触发对Deployment / RS / RC的更新。
考虑:
例如:
apiVersion: apps/v1
kind: Deployment
metadata:
name: worker-deployment
spec:
replicas: 1
selector:
matchLabels:
component: worker
template:
metadata:
labels:
component: worker
spec:
containers:
- name: worker
image: stephengrider/multi-worker
env:
- name: REDIS_HOST
value: redis-cluster-ip-service
- name: REDIS_PORT
value: "6379"
现在,我对multiWorker镜像进行了更改
并重新部署,但不获取最新镜像?
最佳答案
的默认拉取策略是IfNotPresent
,如果该图像已经存在,它将导致Kubelet跳过拉取图像。 Refer Link
如果您想始终强制拉动,则可以执行以下操作之一:
1:将容器的imagePullPolicy
的设置为Always
。
2:省略的imagePullPolicy
,并使用:latest
作为要使用的图像的标签。
3:省略 imagePullPolicy
和要使用的图像标签。
4:启用AlwaysPullImages
接纳 Controller 的。
当kubelet尝试拉出下面列出的指定图像时,图像的各种imagePullPolicy
和tag
影响。 Refer Link for Details
1)imagePullPolicy:IfNotPresent:仅当图像本地不存在时才拉图像。
2)imagePullPolicy:始终:每次启动pod时都会拉动图像。
3)省略imagePullPolicy,并且图像标签为:latest或被省略:始终应用。
4)省略了imagePullPolicy,并且存在image标签,但没有:latest:IfNotPresent被应用。
5)imagePullPolicy:从不:假定图像在本地存在。没有尝试拉图像。
09-13 00:28