代码之家  ›  专栏  ›  技术社区  ›  Fred Mériot

舵图最佳实践:是否最新标记

  •  4
  • Fred Mériot  · 技术社区  · 6 年前

    我想知道处理应用程序版本控制、持续集成/交付和图表打包的最佳方法是什么。

    今天,我有很多微服务在生活。每一个都有自己的生命周期,在自己的git存储库中有自己的版本控制。

    此外,我们选择为所有图表使用一个git存储库。

    现在,我们还有很多选择:

    • 每次微服务更改时,都会生成一个新的docker映像,并创建一个新版本的图表(仅包含在值.yaml文件)
    • --set image.tag=vx.x.x 旗子。

    从“ops”的角度来看,第一种方法的好处是,我们随时都知道集群上运行的每个图表(以及每个docker映像)的版本。缺点是,在某个时候,我们会有许多版本的图表,只是一个docker标签版本改变了。

    那么,你的做法是什么?也许是一种混合方法?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ryan Dawson    6 年前

    我认为这是一个符合你项目需要的选择。一个有趣的比较是Kubernetes charts repo中公共图表的当前版本控制策略和Jenkins-X当前的默认版本控制策略。

    只有当图表发生变化时,公共图表才会受到冲击。这可能是为了改变默认图像标记的版本,但每次都是一个明确的动作,需要公关和审查,并决定是主要版本,次要版本还是修复版本。

    我认为关键的区别是Jenkins-X是朝着高度自动化的CI/CD流发展的,流中有特定的环境。它的方法对于处理频繁的变更部署是有意义的。公共图表的目标是可重用性,并通过公共贡献在非常广泛的环境和情况下提供稳定的体验。因此,这里的策略更多地着眼于可视性和易于理解的变化,相比之下,这些变化的频率可能会更低。