如何在Helm Chart中使用环境变量(示例分布指南)

Helm Chart使用环境变量教程介绍Helm charts 是一种方便高效的收集Kubernetes资源和构建应用集群的方式。他们还可以在本地计算机上使用环境变量来定义要使用的 Kubernetes 部署值。
如何在Helm Chart中使用环境变量?本教程将介绍在 Kubernetes 部署中包含环境变量的不同方式。
【如何在Helm Chart中使用环境变量(示例分布指南)】先决条件

  • 访问终端/命令行
  • Minikube 安装和配置(查看我们关于如何在 Ubuntu上安装 Minikube和如何在 CentOS 上安装 Minikube 的指南)
  • Helm 安装和配置
如何在 Helm 中使用环境变量在 Helm 图表中使用环境变量有两种方法:
  • 使用Kubernetes 中的秘密对象在部署中挂载环境变量。
  • 在 Helm 图表中编写自定义帮助程序。
在本教程中,我们使用USERNAMEPASSWORD环境变量。
注意:  Helm 的环境变量的工作方式类似于Linux、Windows或任何其他操作系统中的环境变量。它传递有助于定义环境的信息。
在 Kubernetes 部署中挂载环境变量
1.values.yaml将以下行添加到Helm 图表中的文件中:
username: root password: password

如何在Helm Chart中使用环境变量(示例分布指南)

文章图片
2. 创建一个名为的新文件secret.yaml并将其添加到template文件夹中。将以下内容添加到文件中:
apiVersion: v1 kind: Secret metadata: name: {{ .Release.Name }}-auth data: password: {{ .Values.password | b64enc }} username: {{ .Values.username | b64enc }}

如何在Helm Chart中使用环境变量(示例分布指南)

文章图片
3. 如何在Helm Chart中使用环境变量?编辑envKubernetes 部署的部分以包含secret.yaml文件中定义的新变量:
... containers: - name: {{ .Chart.Name }} securityContext: {{- toYaml .Values.securityContext | nindent 12 }} image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}" imagePullPolicy: {{ .Values.image.pullPolicy }} env: - name: "USERNAME" valueFrom: secretKeyRef: key:username name: {{ .Release.Name }}-auth - name: "PASSWORD" valueFrom: secretKeyRef: key:password name: {{ .Release.Name }}-auth ...

如何在Helm Chart中使用环境变量(示例分布指南)

文章图片
4. Helm Chart使用环境变量教程:将环境变量设置为你想要的值。例如,将USERNAME变量设置为hello_user
export USERNAME=hello_user

5. 通过将变量与helm install命令组合来将变量应用于 Helm 图表:
helm install --set username=$USERNAME [ chart name] [ chart path]

其中:
  • [chart name]  是你正在使用的 Helm 图表的名称。
  • [chart path]  是你正在使用的 Helm 图表的路径。
如果你想在应用新设置之前对其进行测试,请使用试运行模式:
helm install --dry-run --set username=$USERNAME --debug [ chart name] [ chart path]

如何在Helm Chart中使用环境变量(示例分布指南)

文章图片
Helm Chart如何使用环境变量:在 Helm 中添加自定义助手
1. 使用文件的env部分values.yaml来定义敏感和非敏感变量。使用normalsecret类别列出适当的变量:
secret: name: app-env-var-secret env: normal: variable1: value1 variable2: value2 variable3: value3 secret: variable4: value4 variable5: value5 variable6: value6

使用此方法,我们然后将USERNAMEPASSWORD变量添加到secret类别中:
… secret: USERNAME: [ username] PASSWORD: [ password]

其中:
  • [username]  是你要为USERNAME变量设置的值。
  • 输入密码查看加密内容:
      是你要为PASSWORD变量设置的值。
如何在Helm Chart中使用环境变量(示例分布指南)

文章图片
2. 将values.yaml文件路径添加到文件底部.gitignore
charts/values.yaml

3.secrets.yamltemplates文件夹中创建一个文件,添加如下内容:
apiVersion: v1 kind: Secret metadata: name: {{ .Values.secret.name }} type: Opaque data: {{- range $key, $val := .Values.env.secret }} {{ $key }}: {{ $val | b64enc }} {{- end}}

如何在Helm Chart中使用环境变量(示例分布指南)

文章图片
4. 如何在Helm Chart中使用环境变量?在helpers.tpl文件templates夹中找到文件。将以下内容添加到文件底部以编写新的辅助函数:
{{- define "helpers.list-env-variables"}} {{- range $key, $val := .Values.env.secret }} - name: {{ $key }} valueFrom: secretKeyRef: name: app-env-secret key: {{ $key }} {{- end}} {{- end }}

如何在Helm Chart中使用环境变量(示例分布指南)

文章图片
Helm Chart使用环境变量教程
5. 通过将以下内容添加到你的pod.yaml文件来调用你创建的帮助程序:
… spec: containers: - name: mycontainer image: redis env: {{- include "helpers.list-env-variables" . | indent 6 }} restartPolicy: Never

如何在Helm Chart中使用环境变量(示例分布指南)

文章图片
Helm Chart使用环境变量教程
注意:通过我们的教程了解有关使用 Helm 图表的更多信息,例如:
  • 创建 Helm Chart
  • 使用 Helm Chart 安装 Elasticsearch
  • 获取 Helm 版本的 Helm 值
Helm Chart如何使用环境变量?结论遵循本教程后,你应该将部署设置为使用环境变量。

    推荐阅读