我有一个Kubernetes Cron工作,它运行着我的仓库的最新图像。在cron作业的yaml定义中,图像定义如下所示:
image: 123456789.abc.ecr.us-west-1.amazonaws.com/company/myservice:latest
Run Code Online (Sandbox Code Playgroud)
问题是,只要GitHub中有要合并的主代码,我们的最新标签就会随时更新。但是,此时代码尚未部署到生产。尽管没有连续部署,所以我们的代码未部署在prod中,但是cron作业将使用master的最新代码。
它是否可以作为标记将生成cron作业的“ prod”映像的解决方案?在这种情况下,当我们部署时,产品映像将更新为该映像。另外,如果发生回滚,我们会将产品映像更新为现在要还原到的映像。
还是对此问题有更好的解决方案/模式?
您可以创建 git 发布标签或使用提交 ID。将此值放入配置映射中,并且 cron 作业容器应使用此 commit-id 或release 标记来提取代码。因此,登台和生产配置可以有不同的标签。
我不建议latest在 kubernetes 上使用标签进行部署。它与 docker 配合良好,但与 kubernetes + docker 配合不好。创建不可变的图像标签。Kuberentes 只比较 tag,而不比较 tag + SHA。
https://discuss.kubernetes.io/t/use-latest-image-tag-to-update-a-deployment/2929
imagePullPolicy: always或者您可以与最新标签一起使用。
| 归档时间: |
|
| 查看次数: |
187 次 |
| 最近记录: |