Repolode
kubernetes-sigs

kubernetes-sigs/metrics-server

Scalable source of container resource CPU and memory metrics for Kubernetes autoscaling, served through the Metrics API.

Stars
6,763
Forks
2,054
Open issues
68
Last commit
9 days ago

What is it?

Metrics Server collects resource metrics from Kubelets and exposes them through the Kubernetes apiserver via the Metrics API. The Horizontal Pod Autoscaler and Vertical Pod Autoscaler use this data to make scaling decisions, and kubectl top reads the same API to show pod and node usage.

It is built for autoscaling only, not general monitoring. The project recommends collecting metrics from the Kubelet /metrics/resource endpoint directly when the goal is forwarding data to a monitoring system. It is designed for a single lightweight deployment, with default resource requests suited to clusters up to about 100 nodes and guidance for scaling beyond that.

The cluster must enable the apiserver aggregation layer, Kubelet webhook authentication and authorization, and a Kubelet certificate signed by the cluster CA or an explicit insecure-TLS flag. Installation is available via a YAML manifest or the official Helm chart, with a high-availability mode for multi-node clusters.

Key features

  • 01Collects CPU and memory usage from Kubelets every 15 seconds.
  • 02Exposes pod and node metrics through the standard Kubernetes Metrics API.
  • 03Powers Horizontal and Vertical Pod Autoscaler decisions.
  • 04Enables kubectl top for quick resource usage checks.
  • 05Supports a high-availability mode with multiple replicas.
  • 06Offers configurable Kubelet address types and TLS options.

Use cases

  • Scaling Deployments horizontally based on CPU or memory utilization.
  • Getting vertical sizing suggestions for container resource requests.
  • Debugging autoscaling behavior with kubectl top.
  • Running a lightweight metrics source in mid-sized Kubernetes clusters.

Quick start

  1. 1

    Install the latest release from the components.yaml manifest

    kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
  2. 2

    Check metrics with kubectl top (after a short wait)

    kubectl top pods

Things to know

  • Requires specific cluster setup, such as an enabled aggregation layer and kubelet certificates signed by the cluster CA.
  • Designed only for autoscaling; the README says not to use it as a monitoring metrics source.
  • Default resource requests are tuned for up to about 100 nodes; larger clusters need more resources.

In collections

Topics

FAQ

What is metrics-server?
Scalable source of container resource CPU and memory metrics for Kubernetes autoscaling, served through the Metrics API. Metrics Server collects resource metrics from Kubelets and exposes them through the Kubernetes apiserver via the Metrics API. The Horizontal Pod Autoscaler and Vertical Pod Autoscaler use this data to make scaling decisions, and kubectl top reads the same API to show pod and node usage.
Is metrics-server free to use? What license does it have?
metrics-server is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is metrics-server still maintained?
Actively maintained. The last commit to metrics-server was on Oct 16, 2026.
What can I use metrics-server for?
Scaling Deployments horizontally based on CPU or memory utilization. Getting vertical sizing suggestions for container resource requests. Debugging autoscaling behavior with kubectl top. Running a lightweight metrics source in mid-sized Kubernetes clusters.
How do I install metrics-server?
Install the latest release from the components.yaml manifest: kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml Check metrics with kubectl top (after a short wait): kubectl top pods
Where can I get metrics-server?
The source code and installation instructions are on GitHub: https://github.com/kubernetes-sigs/metrics-server

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects