1.先在prometheus-cfg.yaml配置文件里添加如下配置信息:

   - job_name: kubernetes-pods
      kubernetes_sd_configs:
      - role: pod
      relabel_configs:
      - action: keep
        regex: true
        source_labels:
        - __meta_kubernetes_pod_annotation_prometheus_io_scrape
      - action: replace
        regex: (.+)
        source_labels:
        - __meta_kubernetes_pod_annotation_prometheus_io_path
        target_label: __metrics_path__
      - action: replace
        regex: ([^:]+)(?::\d+)?;(\d+)
        replacement: $1:$2
        source_labels:
        - __address__
        - __meta_kubernetes_pod_annotation_prometheus_io_port
        target_label: __address__
      - action: labelmap
        regex: __meta_kubernetes_pod_label_(.+)
      - action: replace
        source_labels:
        - __meta_kubernetes_namespace
        target_label: kubernetes_namespace
      - action: replace
        source_labels:
        - __meta_kubernetes_pod_name
        target_label: kubernetes_pod_name

2.需要修改pod,让prometheus可以抓取到

kubectl -n monitoa-sa get po 

[root@k8s-master ~]# kubectl get pods -n monitor-sa
NAME                                 READY   STATUS    RESTARTS   AGE
node-exporter-7vs6m                  1/1     Running   3          27d
node-exporter-xqh6c                  1/1     Running   3          27d
prometheus-server-86cf69fb95-w2cjp   2/2     Running   0          12h

kubectl edit pods prometheus-server-86cf69fb95-w2cjp -n monitor-sa

修改annotations字段
metadata:
  annotations:
    cni.projectcalico.org/podIP: 10.244.1.68/32
prometheus.io/scrape: "true"   #默认是false,变成true,就可以被prometheus抓取到,如果pod内没有这段内容,直接加上这段内容即可,加上这段内容就可以被prometheus监控到,其他pod也一样如此

修改好之后,在prometheus web界面,点击status->targets,可以看到target列表多了kubernetes-pod这个列表
prometheus配置pod模式的服务发现-监控pod组件_服务发现