Docker image未使用Helm Chart使用标记“latest”从Docker Hub提取最新图像
目前,我使用Jenkins、Docker和Kubernetes实现了一个测试CI/CD管道。我正在使用Kubernetes Helm图表添加我的Kubernetes资源,并使用Dockerhub作为图像存储库。当我检查我部署的api的输出时,它不会随着修改的更改而更新 当我检查Jenkins的控制台输出时,它成功地显示了所有内容。但是最新的Docker图像并不是通过使用标签latest来提取的。我仍然得到了旧的输出 在我的Helm Chart values.yaml中,我添加了如下内容:Docker image未使用Helm Chart使用标记“latest”从Docker Hub提取最新图像,docker,kubernetes,Docker,Kubernetes,目前,我使用Jenkins、Docker和Kubernetes实现了一个测试CI/CD管道。我正在使用Kubernetes Helm图表添加我的Kubernetes资源,并使用Dockerhub作为图像存储库。当我检查我部署的api的输出时,它不会随着修改的更改而更新 当我检查Jenkins的控制台输出时,它成功地显示了所有内容。但是最新的Docker图像并不是通过使用标签latest来提取的。我仍然得到了旧的输出 在我的Helm Chart values.yaml中,我添加了如下内容: ima
imageCredentials:
name: helmchartrepository
registry: <my-registry-name>
username: <my-username>
password: <my-password>
image:
repository: <my-repository>
tag: latest
pullPolicy: Always
my deployment.yaml引用这些值,如下所示:
imageCredentials:
name: helmchartrepository
registry: <my-registry-name>
username: <my-username>
password: <my-password>
image:
repository: <my-repository>
tag: latest
pullPolicy: Always
注意:即使我使用的配置是通过使用latest从存储库中提取最新映像,但我仍然没有得到修改后的映像。而且也没有错误。唯一的问题是从Dockerhub映像存储库中提取最新的docker映像
如何解决此错误?Helm无法了解图像是否已更新。因为您使用的是最新的固定标记。您可以在元数据中添加一些标签,如日期或时间戳,以标识更改。在部署中的template/metadata/labels下添加日期:{{.Release.Time.Seconds},并设置imagePullPolicy:Always。Helm将检测部署对象中的更改,并将每次提取最新图像:
template:
metadata:
labels:
app.kubernetes.io/name: {{ .Values.app.frontendName }}
app.kubernetes.io/instance: {{ .Release.Name }}
date: "{{ .Release.Time.Seconds }}"
运行helm upgrade releaseName./my chart升级您的版本简短回答的可能重复:让Jenkins为每个构建分配一些唯一的标记,它知道当前提交ID和当前时间,然后helm upgrade-install-set image。标记=。。。当你部署的时候。不要使用最新的标签。感谢您的回复。我像这样添加了数据。但是仍然没有得到更新的结果。@Jacob我有相同的设置,它正在工作。不确定更改后会出现什么问题,无论是否更新新图像。所有的豆荚都会被重新创建,这与-重新创建豆荚标志相同。有没有办法仅在更新新图像时重新创建pod?