【问题标题】:Using Environment Variables with HELM在 HELM 中使用环境变量
【发布时间】:2020-10-20 02:56:54
【问题描述】:

我计划将我的项目升级到 HELM。

我在 deployment.yaml 中定义了许多环境变量。

最佳实践是最好在 values.yaml 文件或模板/deployment.yaml 文件中定义环境变量?

如果有您使用的示例应用程序,您能帮忙吗?

【问题讨论】:

    标签: kubernetes kubernetes-helm helmfile


    【解决方案1】:

    您使用values.yaml 来定义环境变量完全取决于您。值是静态的吗?我将它留在部署 yaml 中没有问题。如果它是一个秘密,你应该使用 k8s 秘密来管理它,或者在你使用 helm install --set-value.. 时输入它如果值是动态的并且经常更改或将来可能会更改,那是 values.yamlimo 的真正用途

    【讨论】:

      【解决方案2】:

      免责声明:我的答案基于 Helm 3。所以让我们开始吧:

      • #1:不,在 values.yaml 中定义静态/默认值。在模板文件(如 deployment.yaml)中放置静态值并不是最好的方法。覆盖 values.yaml 的值 最佳实践是使用--set KEY=VALUE 文件。在这种情况下,完全可以获取环境变量。
      • #2:你能举个例子吗?是的,当然。

      例如,我想使用 helm 在我的集群上安装 Elasticsearch,所以我使用以下命令:

      helm install elastic/elasticsearch --version 7.8.0
      

      但我不想使用图表的默认值。所以我去了https://hub.helm.sh/charts/elastic/elasticsearchhttps://github.com/elastic/helm-charts/blob/7.8/elasticsearch/values.yaml,看看有什么可以改变的,然后我创建了命令:

      helm install elastic/elasticsearch --set minimumMasterNodes=1 --set protocol=https  --version 7.8.0
      

      但在我的 CD 工具中,最小主节点是不同的值,由于这是一个环境变量,我将命令行更改为:

      helm install elastic/elasticsearch --set minimumMasterNodes=$MIN_MASTER_NODES --set protocol=https  --version 7.8.0
      

      因此,一旦正确提供了 MIN_MASTER_NODES 环境变量,上述命令将在您的 CD 工具中正常运行。

      【讨论】:

        猜你喜欢
        • 2021-10-29
        • 2022-08-17
        • 2021-04-06
        • 1970-01-01
        • 2018-09-30
        • 1970-01-01
        • 2020-02-25
        • 1970-01-01
        • 2021-08-08
        相关资源
        最近更新 更多