Metrics Server is a Kubernetes component that collects container resource metrics from Kubelets and exposes them through the Metrics API for use by autoscaling systems.
The tool solves the problem of providing real-time resource utilization data to Kubernetes autoscaling pipelines. It collects CPU and memory metrics from Kubelets every 15 seconds and exposes them via the Metrics API, which is consumed by Horizontal Pod Autoscaler and Vertical Pod Autoscaler. The metrics are also accessible through kubectl top for debugging autoscaling behavior. The project emphasizes that it is designed specifically for autoscaling purposes and should not be used as a general monitoring solution or to forward metrics to external monitoring systems.
Metrics Server is appropriate for clusters that need CPU and memory-based horizontal autoscaling or resource recommendations from the Vertical Pod Autoscaler. It works on most Kubernetes distributions but requires specific cluster configuration: the kube-apiserver aggregation layer must be enabled, nodes must have Webhook authentication and authorization, Kubelet certificates must be signed by the cluster Certificate Authority (or certificate validation can be disabled), and the container runtime must support container metrics RPCs or cAdvisor. Network connectivity must be established between the control plane and Metrics Server, and between Metrics Server and all node Kubelets. For use cases requiring accurate historical metrics, non-CPU/memory-based autoscaling, or monitoring of non-Kubernetes systems, the README recommends full monitoring solutions like Prometheus instead.
The project maintains a single deployment model designed for broad cluster compatibility, with resource efficiency tuned to use minimal CPU and memory overhead per node and support for clusters up to 5,000 nodes. Development activity shows consistent engagement with the codebase through regular updates and maintenance of the core metrics collection and exposure functionality.