【发布时间】:2019-01-14 03:43:17
【问题描述】:
我想知道您在管理 helm 图表版本方面的最佳做法(或只是您的做法)。
我想知道处理应用程序版本控制、持续集成/交付和图表打包的最佳方式是什么。
今天,我有许多微服务过着它们的生活。每个都有自己的生命周期,并且在自己的 git 存储库中拥有自己的版本控制。
此外,我们选择为所有图表使用一个 git 存储库。
现在,我们有太多选择了:
- 每次微服务更改时,都会构建一个新的 docker 映像并创建一个新版本的图表(仅包含在 value.yaml 文件中更改的 docker 映像的标签)
- 或者,即使微服务发生变化,我们也不会创建图表的新版本。图表中 docker 标签的默认值设置为“default”,当我们要升级图表时,我们必须使用
--set image.tag=vx.x.x标志。
从“ops”的角度来看,第一种方法的好处是,我们随时都知道集群上运行的每个图表(和每个 docker 映像)的版本。缺点是在某个时间,每个图表都会有很多很多版本,只有一个 docker 标签版本发生了变化。
另一方面,第二种方法的好处是,唯一使图表版本发生变化的是图表代码本身的修改,而不是应用程序的更改。它大大减少了每个图表的“无用”高版本号。缺点是我们必须在安装/升级时覆盖 docker 标签,并且我们无法观察到集群上正在运行的版本(在灾难恢复计划的情况下很有用)。
那么,你的做法是什么?也许是一种混合方法?
感谢您的帮助
【问题讨论】:
标签: kubernetes continuous-integration versioning continuous-deployment kubernetes-helm