Help improve this page
Want to contribute to this user guide? Scroll to the bottom of this page and select Edit this page on GitHub. Your contributions will help make our user guide better for everyone.
View resource usage with the KubernetesMetrics Server
The Kubernetes Metrics Server is an aggregator of resource usage data in your cluster, and it
isn't deployed by default in Amazon EKS clusters. For more information, see Kubernetes Metrics Server
Important
The metrics are meant for point-in-time analysis and aren't an accurate source for historical analysis. They can't be used as a monitoring solution or for other non-auto scaling purposes. For information about monitoring tools, see Monitor your cluster performance and view logs.
Deploy the Metrics Server
-
Deploy the Metrics Server with the following command:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
If you are using Fargate, you will need to change this file. In the default configuration, the metrics server uses port 10250. This port is reserved on Fargate. Replace references to port 10250 in components.yaml with another port, such as 10251.
-
Verify that the
metrics-server
deployment is running the desired number of Pods with the following command.kubectl get deployment metrics-server -n kube-system
An example output is as follows.
NAME READY UP-TO-DATE AVAILABLE AGE metrics-server 1/1 1 1 6m
-
Test the metrics server is working by displaying resource (CPU/memory) usage of nodes.
kubectl top nodes
-
If you receive the error message
Error from server (Forbidden)
, you need to update your Kubernetes RBAC configuration. Your Kubernetes RBAC identity needs sufficent permissions to read cluster metrics. Review the minimum required Kubernetes API permissions for reading metricson GitHub. Learn how to grant AWS IAM Identities, such as Roles, access to Kubernetes APIs.