cadvisor是一个谷歌开发的容器监控工具,它被内嵌到k8s中作为k8s的监控组件,我们可以直接通过访问 kubelet 下的 /metrics/cadvisor
这个路径来获取 cAdvisor 的数据, 同样我们这里使用 node 的服务发现模式,因为每一个节点下面都有 kubelet,自然都有 cAdvisor
采集到的数据指标,在Prometheus中添加如下配置:
- job_name: "cadvisor"
kubernetes_sd_configs:
- role: node
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
insecure_skip_verify: true
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__metrics_path__]
regex: (.*)
replacement: /metrics/cadvisor
target_label: __metrics_path__
如上配置,注意这里使用了 https 的协议,而且配置了 ca.cart 和 token 这两个文件,这两个文件是 Pod 启动后自动注入进来的,然后更改__metrics_path__
的访问路径 /metrics/cadvisor
,现在同样更新下配置,然后查看 Prometheus 的Targets 路径,已成功抓取指标: