Sari la conținutul principal

cAdvisor

cAdvisor (Container Advisor) este o componentă integrată în kubelet, care colectează detalii despre fiecare container: utilizare CPU, memorie, procese, I/O și trafic. În versiunile moderne de Kubernetes, interfața web a fost dezactivată din motive de securitate, însă datele pot fi accesate prin API.

Accesarea datelor

Pornim un proxy local:

$ kubectl proxy &
Starting to serve on 127.0.0.1:8001

Apoi, interogăm endpointul cAdvisor pentru nodul control-plane:

$ curl http://localhost:8001/api/v1/nodes/monitor-lab-control-plane/proxy/metrics/cadvisor

# HELP cadvisor_version_info A metric with a constant '1' value labeled by kernel version, OS version, docker version, cadvisor version & cadvisor revision.
# TYPE cadvisor_version_info gauge
cadvisor_version_info{cadvisorRevision="",cadvisorVersion="",dockerVersion="Unknown",kernelVersion="6.4.16-linuxkit",osVersion="Ubuntu 21.04"} 1
# HELP container_blkio_device_usage_total Blkio Device bytes usage
# TYPE container_blkio_device_usage_total counter
container_blkio_device_usage_total{container="",device="/dev/vda",id="/",image="",major="254",minor="0",name="",namespace="",operation="dbytes",pod=""} 0 1762521841103
container_blkio_device_usage_total{container="",device="/dev/vda",id="/",image="",major="254",minor="0",name="",namespace="",operation="dios",pod=""} 0 1762521841103
[...]
container_cpu_user_seconds_total{container="kube-apiserver",id="/kubelet/kubepods/burstable/pod57fd580eb263d6db462b3b4d662e1a42/d92980525d77730ba276f6cd8f7bcf85d3adc18c80720ea79a6f4cb22ae6bfb7",image="k8s.gcr.io/kube-apiserver:v1.21.1",name="d92980525d77730ba276f6cd8f7bcf85d3adc18c80720ea79a6f4cb22ae6bfb7",namespace="kube-system",pod="kube-apiserver-monitor-lab-control-plane"} 49.632574 1762521832657
[...]

Rezultatul este un flux text cu metrici în format Prometheus. Fiecare metrică are un nume și o serie de etichete (labels), care descriu, printre altele, sursa datelor:

  • container - numele containerului
  • namespace - namespace-ul în care rulează
  • pod - podul asociat.

Aceste date sunt utilizate ulterior de Prometheus pentru colectare periodică.