【问题标题】:Is there a way in Kubernetes to get the deployment name from Helm as an environment variable?Kubernetes 中有没有办法从 Helm 获取部署名称作为环境变量?
【发布时间】:2020-07-21 00:59:58
【问题描述】:

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

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

【问题讨论】:

  • 这是否暴露了部署名称?看起来这只是 pod 名称....
  • 对不起,我的意思是这种方法对你有用吗?我可以检查部署名称是否可达。
  • metadata.name 对您来说就足够了 - 只需删除副本集后缀和 pod 后缀,例如<deployment_name>-<replica_set_hash>-<pod_hash>。让我知道这是否有效,我可以回答
  • @Serge 这就是我试图避免解析的内容,如果您阅读了这个问题。我想,你的第一个问题也得到了回答。

标签: kubernetes kubernetes-helm


【解决方案1】:

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

例如,假设您的部署看起来像 standard template

kind: Deployment
metadata:
  name: {{ include "chartname.fullname" . }}

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

env:
  - name: DEPLOYMENT_NAME
    value: {{ include "chartname.fullname" . }}

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

【讨论】:

    猜你喜欢
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2019-03-09
    相关资源
    最近更新 更多