LearnGlossary

What is Metrics Server in Kubernetes?

Updated 2 November 2026 · Published by Zoorik

Metrics Server (metrics-server) is a Kubernetes cluster add-on that collects CPU and memory use from the kubelet on each node. It serves that data through the Kubernetes API as the Metrics API, metrics.k8s.io.

The Horizontal Pod Autoscaler (HPA), the Vertical Pod Autoscaler (VPA) and kubectl top read it. The Metrics API answers only once metrics-server, or another adapter that serves it, is deployed.

Kubelets feed metrics-server, which serves the Metrics API Illustration of the resource metrics pipeline in a cluster of three nodes. Three boxes along the top, each labelled node and kubelet, join in one line that runs down, labelled /metrics/resource, to a box labelled metrics-server. An arrow labelled metrics.k8s.io runs down from it to a box labelled API server. From the API server, a line splits to three boxes along the bottom: HPA, which adjusts replicas, VPA, which adjusts resources, and kubectl top, which shows CPU and memory use. Kubelets feed metrics-server, which serves the Metrics API nodekubeletnodekubeletnodekubelet/metrics/resourcemetrics-servermetrics.k8s.ioAPI serverHPAadjusts replicasVPAadjusts resourceskubectl topshows CPU and memory use
Illustration with three nodes: each kubelet feeds metrics-server, and the API server serves the Metrics API to the HPA, the VPA and kubectl top.

How Metrics Server works

  • It tracks nodes and pods through the Kubernetes API, and queries each node’s kubelet over HTTP. From metrics-server v0.6.0 it reads /metrics/resource, and older versions used /stats/summary.
  • An APIService registers metrics.k8s.io with the API server’s aggregation layer. So Kubernetes role-based access control (RBAC) decides who can read it.
  • CPU is average core use over a time window. Memory is the working set in bytes, at the moment it was collected.

Metrics Server on AKS and EKS

On AKS, Metrics Server already runs in the kube-system namespace, which every cluster gets by default.

Amazon EKS doesn’t deploy Metrics Server by default. AWS’s current route is the Metrics Server community add-on. In the AWS console, open your cluster, choose Add-ons, then Get More Add-ons, then Metrics Server.

AWS still documents the manifest route: apply it, check the deployment, then read node use.

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
kubectl get deployment metrics-server -n kube-system
kubectl top nodes

If kubectl top returns Error from server (Forbidden), your Kubernetes RBAC identity lacks permission to read cluster metrics.

What Metrics Server isn’t for

Metrics Server keeps a short-term, in-memory view. AWS says its metrics are meant for point-in-time analysis, not for history. They can’t be used as a monitoring solution, or for purposes other than autoscaling.

It serves only CPU and memory. To scale on other metrics, you need an adapter for the custom.metrics.k8s.io or external.metrics.k8s.io API.

kube-state-metrics is a different add-on. It exposes the state of objects, such as status, labels and start times, for a tool such as Prometheus to scrape.

Why Metrics Server matters for your cloud cost

As load drops, the HPA reads this API and scales replicas back down. Its CPU target is a share of each pod’s CPU request. If any container has no CPU request, the HPA takes no action on CPU.

Compare kubectl top pods with each pod’s requests. The gap is node capacity your requests hold but no pod uses, and you still pay for it.

  • Coral rebalances CPU and memory requests on AKS and EKS to match real use. It drains spare nodes so your autoscaler can remove them.
  • The free assessment works out your own figure. It samples use with kubectl top. Without Metrics Server, requests stay as they are and only surplus nodes count.
Find your own number

One line in your cloud console. One PDF report with your estimated saving at list price.

Estimate your saving
Talk to the builders

Thirty minutes with the people who build Coral.

Book a demo (opens in a new tab)

Or write to founders@zoorik.com