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

kube-state-metrics是否支持采集Pod注解及版本要求?

kube-state-metrics(KSM)采集Pod注解相关说明

KSM支持采集指定的Pod注解信息,你在现有部署中查不到对应指标,是因为该能力默认处于关闭状态,并非不可用。

版本适配说明

  • 该特性从KSM v2.0.0正式版本开始就已提供,不属于近期新增的特性,只要你部署的KSM版本在v2.0.0以上,不需要升级即可使用。
  • 默认关闭注解采集是出于性能考量:Pod注解中通常存储大量非监控类的配置元数据,全量采集会导致指标基数爆炸,直接影响KSM、Prometheus的查询和存储性能,因此官方默认不会暴露kube_pod_annotations指标。

配置开启方法

你只需要在启动KSM时,通过启动参数指定要采集的注解白名单即可,不需要将邮箱地址挪到Pod label中:

  • 给KSM容器添加启动参数:--metric-annotations-allowlist=pods=[你存储邮箱的注解Key]
    举个例子,如果你用来存告警收件人邮箱的注解Key是monitor/alert-email,参数配置如下:
    --metric-annotations-allowlist=pods=monitor/alert-email
    
  • 如果需要同时采集多个Pod注解,多个注解Key之间用英文逗号分隔即可,例如:
    --metric-annotations-allowlist=pods=monitor/alert-email,app/owner
    
  • 配置生效后,即可查询到kube_pod_annotations指标,你指定的注解内容会作为指标的标签存在,示例如下:
    kube_pod_annotations{namespace="prod",pod="order-service-0",annotation_monitor_alert_email="ops@example.com"} 1
    
    你在配置告警规则时直接关联对应标签的内容,就能实现动态匹配收件人发送告警邮件的需求。

注意事项

  • 禁止配置全量注解采集:不要为了省事把所有Pod注解都加入白名单,只添加业务确实需要、枚举值可控的注解Key,避免出现指标基数过高的问题。
  • 如果你是通过Helm方式部署KSM,不需要手动修改启动参数,直接在values.yaml中找到metricAnnotationsAllowList字段,按格式填入需要采集的注解Key即可完成配置。
  • 如果你当前运行的KSM版本低于v2.0.0,先升级到v2.x以上的稳定版本即可使用该能力。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 03:18:27