0

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

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

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

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

4

2 回答 2

3

免责声明:我的答案基于 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 工具中正常运行。

于 2020-07-07T06:38:04.090 回答
2

您用于values.yaml定义环境变量完全取决于您。值是静态的吗?我可以将它留在部署 yaml 中。helm install --set-value..如果它是一个秘密,你应该使用k8s秘密来管理它,或者在你使用时输入values.yaml

于 2020-06-29T21:42:19.727 回答