如何将Kubernetes Secret中的Datadog密钥注入OpenTelemetry Operator配置
使用OpenTelemetry Operator注入Datadog API密钥(从Kubernetes Secret)
当然可以实现,无需依赖Helm,直接通过OpenTelemetry Operator的配置就能完成,以下是两种常用方案:
方式一:环境变量注入(推荐)
利用Collector原生支持的环境变量替换功能,先从Secret读取密钥到环境变量,再在配置模板中引用该变量。
1. 确认Secret状态
假设你的Secret名称为datadog-api-key,其中存储API密钥的键为api-key。若未创建Secret,可执行:
kubectl create secret generic datadog-api-key --from-literal=api-key="你的实际Datadog API密钥"
2. 修改OpenTelemetryCollector配置
在spec中添加env字段注入环境变量,配置模板里用${变量名}引用:
apiVersion: opentelemetry.io/v1alpha1 kind: OpenTelemetryCollector metadata: name: opentelemetry-collector spec: mode: statefulset replicas: 1 # 从Secret注入环境变量 env: - name: DD_API_KEY valueFrom: secretKeyRef: name: datadog-api-key key: api-key config: | exporters: logging: datadog: api: site: "us5.datadoghq.com" key: "${DD_API_KEY}" # 引用环境变量替换密钥
方式二:挂载Secret文件读取
若偏好通过文件读取敏感信息,可将Secret挂载到Collector Pod,再在配置中读取文件内容:
apiVersion: opentelemetry.io/v1alpha1 kind: OpenTelemetryCollector metadata: name: opentelemetry-collector spec: mode: statefulset replicas: 1 # 挂载Secret到Pod指定路径 volumeMounts: - name: datadog-api-key-volume mountPath: /secrets/datadog readOnly: true volumes: - name: datadog-api-key-volume secret: secretName: datadog-api-key config: | exporters: logging: datadog: api: site: "us5.datadoghq.com" key: "${file:/secrets/datadog/api-key}" # 读取挂载的文件内容
注意事项
- OpenTelemetry Collector默认支持
${变量名}和${file:文件路径}的配置替换语法,无需额外配置。 - 确保OpenTelemetry Operator版本在v0.60及以上,基本都支持上述功能。
内容的提问来源于stack exchange,提问作者Alex Flint
相关产品推荐
相关产品推荐

