Helm 管理服务集合

Helm managing a collection of services

我有一个运行许多独立、离散服务的 Kubernetes 集群。我想使用 helm 来部署它们,我已经为每个单独的资源制作了 helm 图表。

但是,现在我希望能够将集群部署为单个实体,但我不清楚helm如何支持将多个图表拼接在一起。

当我查看示例存储库时,他们只是在单个图表的模板文件夹中包含每个模板文件,然后是一个巨大的、庞大的 Values.yaml 文件。

对我来说,这似乎很笨拙,尤其是在 2000 行附近爬行 Values.yaml 寻找设置。

有没有什么方法可以采用如下所示的文件夹结构:

helm
|____ Service1
      |_______ values.yaml
      |_______ templates
      Service2
      |_______ values.yaml
      |_______ templates
      Service3
      |_______ values.yaml
      |_______ templates

并将其打包到一个部署中,而无需手动合并和删除文件和值?

使用helm subcharts

你需要有元图表之类的东西,myapps。然后你会像这样添加一个 requirements.yaml 文件:

# myapp/requirements.yaml
dependencies:
  - name: Service1
    repository: http://localhost:10191
    version: 0.1.0
  - name: Service2
    repository: http://localhost:10191
    version: 0.1.0
  - name: Service3
    repository: http://localhost:10191
    version: 0.1.0

我们也有类似的场景,其中我们有独立的应用程序,我们需要一起部署以解决跨越它们的功能,或者单独部署以解决错误。 我们最终使用 helmfile (https://github.com/roboll/helmfile)。 每个应用程序仍然维护自己的图表,使用 helmfile,如果需要,我们可以将它们一起部署。