如何用Prometheus采集特定可用区Pods?配置报错求助
解决Prometheus采集特定可用区Pod的配置问题
错误原因
你当前的配置报错是因为:当kubernetes_sd_configs的role设为pod时,selectors里只能使用针对Pod的选择器,不能指定node角色的选择器,这违反了Prometheus的配置规则。
正确配置方案
要实现采集特定可用区(节点标签az=us-east-1)上的Pod,需要分两步:
- 开启节点元数据附加,让Pod目标带上所在节点的标签
- 通过重标记规则(relabel)过滤出符合可用区条件的Pod
完整配置如下:
- job_name: 'istio-monitoring' scrape_interval: 10s kubernetes_sd_configs: - role: pod namespaces: names: - integration - istio-system attach_metadata: node: true # 开启节点元数据附加,Pod目标会带上节点的所有标签 relabel_configs: - source_labels: [__meta_kubernetes_node_label_az] regex: us-east-1 action: keep # 只保留节点az标签等于us-east-1的Pod目标
配置说明
attach_metadata: node: true:会自动将Pod所在节点的所有标签以__meta_kubernetes_node_label_<标签键>的形式附加到Pod采集目标上,比如节点标签az=us-east-1会变成__meta_kubernetes_node_label_az="us-east-1"relabel_configs的keep动作:只保留匹配regex规则的目标,这里就是筛选出节点az为us-east-1的Pod,不符合的会被丢弃
内容的提问来源于stack exchange,提问作者Sushil Kumar
相关产品推荐
相关产品推荐

