微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在容器环境中使用部署标签

如何解决在容器环境中使用部署标签

要放入豆荚的标签一个小问题。 我使用 EKS 集群并按照说明设置 Datadog APM。在 this address 的教程中。

表示将这些标签放在我的部署中:

apiVersion: apps/v1
kind: Deployment

labels:
  tags.datadoghq.com/env: "<environment>"
  tags.datadoghq.com/service: "<service>"
  tags.datadoghq.com/version: "<version>"

还有这些环境变量(在容器规范中):

env :
        - name : DD_AGENT_HOST
          valeurFrom :
            fieldRef :
              fieldpath : status.hostIP
        - nom : DD_ENV
          valeurFrom :
            fieldRef :
              fieldpath : Metadata.labels['tags.datadoghq.com/env']
        - nom : DD_SERVICE
          valeurFrom :
            fieldRef :
              fieldpath : métadonnées.labels['tags.datadoghq.com/service']
        - nom : DD_VERSION
          valeurFrom :
            fieldRef :
              fieldpath : Metadata.labels['tags.datadoghq.com/version']

然而,我所做的,在我的 pod 中,这些环境变量是空的,通过将这些环境变量移动到 spec -> template -> Metadata -> labels 中的标签中,它工作正常,当我签入我的 pod 时,我的环境变量已经填好 但这并不好,因为在我的应用程序每次更新时,我都必须更改 tags.datadoghq.com/version label: "<version>" 并且这仅在它是部署标签时才有意义,这就是为什么我认为在文档中它说要放置这些部署级别的labels,但是不行,大家有什么办法吗,我真的找了很多都找不到。

解决方法

所以解决方案如下: 不要将标签放在部署级别(如 Datadog 文档中所示),而是将它们放在 Pod 模板 级别 (spec -> template -> metadata -> labels)。关于标签的更新,您必须启动以下命令:

$ kubectl patch deployment/myDeployment --patch '{"spec": {"template": {"metadata": {"labels": {"tags.datadoghq.com/version": "myVersionValue"}}}}}'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。