You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kubernetes OT Operator的OpenTelemetryCollector配置中传入环境变量?

实现OpenTelemetryCollector通过环境变量注入API密钥的方案

要在OpenTelemetryCollector实例中通过环境变量传入API密钥和Endpoint,你可以通过以下步骤实现:

1. 用Secret存储敏感信息

首先将你的Endpoint和API密钥存入Kubernetes Secret,避免明文暴露在配置中:

apiVersion: v1
kind: Secret
metadata:
  name: otel-exporter-secrets
type: Opaque
data:
  # 注意:这里的值需要用base64编码,执行`echo -n "你的endpoint地址" | base64`生成
  ENDPOINT: ZXhhbXBsZS1lbmRwb2ludC5jb20=
  # 同理,执行`echo -n "你的API密钥" | base64`生成
  API_KEY: eW91ci1hcGkta2V5LXRoaXMtaXMtYW4tZXhhbXBsZQ==

2. 修改OpenTelemetryCollector配置,注入环境变量

在你的OpenTelemetryCollector CR中添加env字段,从Secret读取环境变量,同时确保配置文件中的变量能被正确替换:

apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
  name: simplest
spec:
  # 注入环境变量,引用上面创建的Secret
  env:
    - name: ENDPOINT
      valueFrom:
        secretKeyRef:
          name: otel-exporter-secrets
          key: ENDPOINT
    - name: API_KEY
      valueFrom:
        secretKeyRef:
          name: otel-exporter-secrets
          key: API_KEY
  config: |
    receivers:
      otlp:
        protocols:
          grpc:
          http:
    processors:

    exporters:
      logging:
      otlp:
        endpoint: "${ENDPOINT}"
        headers:
          api-key: "${API_KEY}"

    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: []
          exporters: [logging, otlp]

关键说明

  • 敏感信息安全:用Secret存储API密钥和Endpoint是Kubernetes中管理敏感数据的标准方式,避免了明文泄露风险。
  • 环境变量替换:OpenTelemetry Collector默认支持配置中的环境变量替换,使用${变量名}格式可以确保变量被正确解析(也可以使用$变量名,但加花括号能避免变量名和后续字符的歧义)。
  • Pipeline生效:注意在service.pipelines.traces.exporters中添加otlp,否则你配置的OTLP exporter不会被启用,无法完成上报。

内容的提问来源于stack exchange,提问作者chelseafc26

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:39:53