配置图中的Kubernetes图像配置

问题描述:

我有一个后端服务部署到Kubernetes。 无论何时我想部署我构建我的泊坞窗图像,使用标记(例如1.1.0)将它推送到谷歌码头注册表并更新我的部署yaml。配置图中的Kubernetes图像配置

但是,更新此文件并创建另一个提交是PITA。特别是因为我有一个生产和临时环境(实际上是2个命名空间) 我最近发现了关于Kubernetes中的ConfigMaps。

所以我想知道是否有可能存储一个值与ConfigMap中的图像标签并使用它?到目前为止我还没有找到办法。

有什么好的选择,所以我不必在git中存储关于当前版本的信息?这里最好的做法是什么?使用latest标签我猜不是。

我想让我的CI在我推动掌握或开发(我使用gitlab CI)时进行部署,因此任何在命令行上很容易执行而没有大量sed的方法将不胜感激。

一个简单的解决方案是使用kubectl set image触发部署的滚动更新:

kubectl set image deployment/foobar <container_name>=<new_image:new_tag> 

,你可以用你的git的承诺id作为图像标签。

+0

非常感谢。这正是我正在寻找的。 – Bantak

+0

这种方法的问题是您最终会在存储库中存储过时的部署YAML。我会建议编写一个脚本,用新的image:tag更新YAML,然后调用'kubectl apply'。所有主要语言都有YAML库,因此编写这样的脚本将很容易。 –