说到容器监控我们自然会想到 cAdvisor,因为 cAdvisor 已经内置在了 kubelet 组件之中,所以我们可以直接通过访问 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 路径,已成功抓取指标:



