如何解决在容器环境中使用部署标签
要放入豆荚的标签有一个小问题。 我使用 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 举报,一经查实,本站将立刻删除。