Skip to content

kubelet Metrics collection

Kubelet Metrics collection is the process by which a Kubernetes cluster gathers resource usage data, such as CPU and memory utilization, from individual nodes and Pods^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md]. Because Kubernetes does not provide a built-in tool for consolidating this monitoring data, extensions like the Metrics Server are required to aggregate the Metrics and make them accessible^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md].

Data Aggregation

Metrics Server functions as a cluster-level aggregator^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md]. It integrates with the API Server via kube-aggregator and acts as an intermediary that collects data from the kubelet on each node^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md].

The kubelet is responsible for collecting the raw Metrics for its specific node^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md]. Once gathered, the data is stored in the Metrics Server's memory^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md]. Consequently, this data is ephemeral; historical Metrics are not preserved, and a restart of the Metrics Server results in data loss^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md].

API Exposure

The aggregated Metrics are exposed to users and other cluster components through a dedicated API endpoint^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md]. Specifically, the resource Metrics are made available via the /apis/[Metrics](<./metrics.md>).k8s.io API path^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md].

This data can be retrieved and viewed using standard command-line tools. The kubectl top command is commonly used to display current resource usage statistics for both nodes and pods^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md].

Sources

^[400-devops-06-kubernetes-k8s-ithelp-day24-readme.md]