想象一下,我正在开发基于微服务的应用程序。它们将通过Helm Package Manager部署到kubernetes。一些微服务最终具有非常相似的YAML文件配置。在YAML配置方面,其他一些可能有所不同。最佳做法是什么?我有几种选择:
答案 0 :(得分:2)
这是一个意见问题,所以我将给出意见。
上端:根据微服务的不同,您只需要在values.yaml中更改几个值即可,并且更易于维护values.yml。您的Helm图表回购可能不会以如此快的速度增长。
缺点:例如,创建您的_helpers.tpl
文件会比较困难。该文件将迅速增长,并且可能会使创建微服务的人对其理解感到困惑。
优势:当您扩展到数百个时,微服务分离。开发人员只能在其微服务部署上进行工作。
缺点:文件散布,到处都有太多文件,您的Helm图表回购可能会迅速增长。此外,还有重复代码的风险。
更一般的做法是,官方Helm图表的编号为2,但每个图表再次适用于非常不同的应用程序。
答案 1 :(得分:0)
就像@Rico提到的,这是一个意见问题。这是我的意见:
我认为从一个适合所有人的图表开始是一个好主意。但是,当您只需要为一些有特殊要求的服务添加非常具体的内容时,则应创建另一个图表。关于微服务,这个想法与Monolith first非常相似。
在我公司中,我们有一张可供30个服务使用的图表。它们的需求非常相似,因此模板文件并不太复杂,并且_helpers文件只有大约50行。我们对此解决方案感到非常满意,因为您只需要几行values.yaml即可准备服务以进行操作。