docker - Docker 映像未使用 Helm Chart 使用标签“最新”从 Docker Hub 提取最新映像
问题描述
目前我使用 Jenkins、Docker 和 Kubernetes 实现了一个测试 CI/CD 管道。我正在使用 Kubernetes Helm Chart 添加我的 Kubernetes 资源并使用 Dockerhub 作为图像存储库。当我检查我部署的 api 的输出时,它没有通过修改后的更改进行更新。
当我检查 Jenkins 的控制台输出时,它显示一切成功。但是最新的 Docker 镜像并没有通过使用标签“latest”来拉取。我仍然得到较旧的输出。
在我的 Helm Chart values.yaml 中,我添加了如下内容:
imageCredentials:
name: helmchartrepository
registry: <my-registry-name>
username: <my-username>
password: <my-password>
image:
repository: <my-repository>
tag: latest
pullPolicy: Always
我的 deployment.yaml 引用了这些值,如下所示:
注意:即使我使用“latest”从存储库中提取最新图像的配置,我仍然没有得到修改后的图像。而且也没有错误。唯一的问题是从 Dockerhub 镜像存储库中提取最新的 docker 镜像。
如何解决此错误?
解决方案
添加date: "{{ .Release.Time.Seconds }}"
在您的deployment
下template/metadata/labels
并设置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
以升级您的版本
推荐阅读
- php - 使用 PHP 将项目数计算为多维数组
- python-3.x - Airflow Plugin - 创建自己的模型并使用气流元数据库来存储插件特定的数据
- python - pandas - 如何将嵌套字典中的数据加载到数据框中?
- javascript - 如何在javascript中向多边形添加图案?
- php - 如何修复显示 SMTP 错误的 PHPMailer 错误:无法验证。用户名和密码不被接受?
- database - 在 Cassandra 中断开节点
- android - 反应本机签名的 apk 大小为 28.7 MB
- python - 从 pandas 的列标题中删除前缀(或后缀)子字符串
- javascript - 从外部 HTML 表中获取数据到数组
- user-interface - 最后添加的Jhipster关系