apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: test
spec:
replicas: 1
template:
metadata:
labels:
app: test
spec:
containers:
- name: test
image: xxx:latest
ports:
- containerPort: 80
imagePullPolicy: Always
imagePullSecrets:
- name: aaaa
我使用“最新”标签。当我更新图像时,新图像仍然是“最新的”。当我“kubectl set image deployments / test test = xxx:latest”时,什么都没发生。我该怎么办?
答案 0 :(得分:3)
当template
下的PodTemplateSpec发生变化时,总会触发RollingUpdate。
虽然未建议使用:latest
标记,但在使用imagePullPolicy: Always
和每次图像调整时更改的标签时,仍然可以使用kubectl patch deployment test -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\"$(date +%s)\"}}}}}"
标记。是这样的:
{{1}}
答案 1 :(得分:0)
滚动更新取决于docker图像标记。如果您在部署中使用latest
标记,则需要使用新版本剪切新图像。
如果您始终使用latest
标记,则部署资源无法确定图像是否已更改。至于k8s,你已经运行带有标签latest
的图片,所以它没有任何事情要做。
出于这个原因,强烈建议不要使用latest
进行部署。如果您正确地对Docker镜像进行版本化,那么您将会更容易。