Resource Optimization Audit
Intermediate10 minTrending
Audit resource requests and limits across your cluster to find over-provisioned or under-provisioned workloads.
Prerequisites
- -kubectl configured
- -Metrics server installed
Steps
1
View actual resource usage vs requests
Compare real CPU and memory consumption against what was requested.
$ kubectl top pods --all-namespaces --sort-by=memory
If this fails, ensure metrics-server is installed: kubectl get deployment metrics-server -n kube-system.
2
Find pods without resource limits
Identify pods that do not have resource limits set, which can cause noisy neighbor problems.
$ kubectl get pods --all-namespaces -o json | jq -r '.items[] | select(.spec.containers[].resources.limits == null) | .metadata.namespace + "/" + .metadata.name'
3
View node resource allocation
See how much of each node's capacity is allocated to pods.
$ kubectl describe nodes | grep -A5 'Allocated resources'
4
List resource requests and limits for all pods
Get a summary of CPU and memory requests/limits across all pods.
$ kubectl get pods --all-namespaces -o custom-columns='NAMESPACE:.metadata.namespace,POD:.metadata.name,CPU_REQ:.spec.containers[*].resources.requests.cpu,MEM_REQ:.spec.containers[*].resources.requests.memory,CPU_LIM:.spec.containers[*].resources.limits.cpu,MEM_LIM:.spec.containers[*].resources.limits.memory'
Full Script
FAQ
Discussion
Loading comments...