我有一个Kubernetes集群,它运行一个开放遥测收集器实例。
我在Kubernetes中的.Net应用程序将跟踪导出到收集器实例,而后者又将它们导出到Elastic服务器。如果对收集器实例使用此配置(在此描述),则此操作正确:
exporters:
otlp/elastic:
endpoint: "xxx.elastic-cloud.com:443"
headers:
Authorization: "Bearer your-apm-secret-token"为了在Kubernetes中工作,我在一个ConfigMap中设置了这个配置。的工作是正确的,但问题是,这需要我在ConfigMap中添加一个秘密,这是我想要避免的.
为了避免这种情况,我看到您可以添加一个标头环境变量,它将由出口商使用。然后,您可以通过容器中的环境变量传递秘密(这不是一个完美的解决方案,但对我来说可以)。这个功能似乎是由不同的OpenTelemetry SDK (.Net、Java、Python、.)实现的。但是,如果我尝试使用环境变量技巧,它似乎不适用于收集器。
知道我怎么能和收藏家一起做这件事吗?或者其他避免将秘密传递给ConfigMap的伎俩?
发布于 2021-08-25 01:59:59
为OpenTelemetry收集器输入了一个OpenTelemetry,它解决了我在环境变量中使用秘密的主要问题。
在此之前,问题的作者建议环境变量扩展机制作为一种解决办法。
因此,如果将令牌放入环境变量ELASTIC_APM_TOKEN中,则可以在ConfigMap中引用它,如下所示:
exporters:
otlp/elastic:
endpoint: "xxx.elastic-cloud.com:443"
headers:
Authorization: "Bearer $ELASTIC_APM_TOKEN"然后,在应用配置之前,收集器将用环境变量中的值替换$ELASTIC_APM_TOKEN。
https://stackoverflow.com/questions/68899074
复制相似问题