Kubernetes 有没有办法从 Helm 获取部署名称作为环境变量?

Gar*_*ner 0 kubernetes kubernetes-helm

有没有办法将部署名称从 helm 公开到容器?它通常作为主机名的一部分提供,但如果我能帮上忙,我宁愿不解析它。

我知道您可以根据文档将某些元数据设置为特定的环境变量:https : //kubernetes.io/docs/tasks/inject-data-application/environment-variable-expose-pod-information/ 但是,这并没有似乎直接包含部署名称。有没有办法获得这些信息?

Dav*_*aze 5

您不能直接将部署名称回显到环境变量中,但可以复制部署名称,包括生成它的任何模板代码。

例如,假设您的部署看起来像标准模板

kind: Deployment
metadata:
  name: {{ include "chartname.fullname" . }}
Run Code Online (Sandbox Code Playgroud)

在部署的 pod 规范部分,您可以重复相同的调用以获得相同的名称。

env:
  - name: DEPLOYMENT_NAME
    value: {{ include "chartname.fullname" . }}
Run Code Online (Sandbox Code Playgroud)

您必须手动将其包含在您的 YAML 或文件中的一组标准环境变量中_helpers.tpl。如果您更改 Helm 版本名称并获得不同的部署名称,它将生成正确的值。如果您更改 YAML 文件顶部的名称并忘记在第二位更新它,它将不会产生正确的值。