【问题标题】:How to manage Kubernetes Helm Chart Configurations?如何管理 Kubernetes Helm Chart 配置?
【发布时间】:2020-04-01 17:21:39
【问题描述】:

我想设置一个安装了多个 Helm Chart 的 Kubernetes 集群。我喜欢在 Git 存储库中对配置进行版本控制的想法。我想知道是否有任何工具(或推荐/最佳实践)可以“版本化”已安装 helm 图表的状态。

例如,我想要一个类似于以下示例的 yaml 文件,其中包含多个 helm 图表和一个工具(这是我正在搜索的工具),它将负责将此文件应用于我的 Kubernetes 集群:

- name: gitlab
  chart: gitlab/gitlab-runner
  repository: https://charts.gitlab.io
  values:
    - gitlab-runner/values.yaml
    - local/gitlab-runner-override.yaml
  namespace: gitlab-runner

- name: metallb
  chart: stable/metallb
  values:
    - metallb/configuration.yaml

...

这样可以以编程方式管理 Kubernetes 集群的内容。

有什么建议吗?

【问题讨论】:

    标签: git kubernetes kubernetes-helm


    【解决方案1】:

    如果我正确理解您的要求,我认为您可以创建一个新的掌舵图,比如说自定义应用程序。将所有其他 helm 图表添加为依赖项。

    基本上,在您的新定制应用程序的 helm 目录中创建一个名为 chart/ 的目录,并将图表添加到其中。

    这是您对图表集合进行版本控制的一种方式。

    【讨论】:

    • 如果您有两个服务依赖于相同“种类”的数据存储(例如,都依赖于stable/mysql 图表)但希望它们具有它的独立副本; Helm 只会在一个版本中安装每个图表一次。
    • @DavidMaze 我认为您可以在这种情况下使用dependency alias
    【解决方案2】:

    看起来helmfile 是您需要的解决方案:

    Helmfile 是用于部署 helm 图表的声明性规范。它让 你……

    保留图表值文件的目录并维护版本更改 控制。将 CI/CD 应用于配置更改。定期同步到 避免环境偏差。

    您可以在this 文章中阅读更多相关信息。

    【讨论】:

    • 这正是我正在寻找的!谢谢!
    猜你喜欢
    • 2020-01-26
    • 1970-01-01
    • 2018-09-15
    • 2018-04-15
    • 2020-02-04
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 2021-02-12
    相关资源
    最近更新 更多