Helm Charts微服务

时间:2018-10-05 00:30:28

标签: kubernetes microservices kubernetes-helm

想象一下,我正在开发基于微服务的应用程序。它们将通过Helm Package Manager部署到kubernetes。一些微服务最终具有非常相似的YAML文件配置。在YAML配置方面,其他一些可能有所不同。最佳做法是什么?我有几种选择:

  1. 使用通用图表并为每个微服务使用values.env.yaml传递不同的配置,然后使用不同的发行版名称进行部署。
  2. 为每个单个微服务创建图表,无论它们在配置方面是否相似?

2 个答案:

答案 0 :(得分:2)

这是一个意见问题,所以我将给出意见。

  1. 上端:根据微服务的不同,您只需要在values.yaml中更改几个值即可,并且更易于维护values.yml。您的Helm图表回购可能不会以如此快的速度增长。

    缺点:例如,创建您的_helpers.tpl文件会比较困难。该文件将迅速增长,并且可能会使创建微服务的人对其理解感到困惑。

  2. 优势:当您扩展到数百个时,微服务分离。开发人员只能在其微服务部署上进行工作。

    缺点:文件散布,到处都有太多文件,您的Helm图表回购可能会迅速增长。此外,还有重复代码的风险。

更一般的做法是,官方Helm图表的编号为2,但每个图表再次适用于非常不同的应用程序。

答案 1 :(得分:0)

就像@Rico提到的,这是一个意见问题。这是我的意见:

我认为从一个适合所有人的图表开始是一个好主意。但是,当您只需要为一些有特殊要求的服务添加非常具体的内容时,则应创建另一个图表。关于微服务,这个想法与Monolith first非常相似。

在我公司中,我们有一张可供30个服务使用的图表。它们的需求非常相似,因此模板文件并不太复杂,并且_helpers文件只有大约50行。我们对此解决方案感到非常满意,因为您只需要几行values.yaml即可准备服务以进行操作。