Kubernetes: What pod uses most CPU on a node?

8/24/2020

Is there any way to list all PODs that are using the most CPU on the node using kubectl command. I could not see this in the official documentation.

-- Eddwin Paz
kubectl
kubernetes

2 Answers

8/24/2020

To know which pod scheduled on a specific node has most CPU requests you can describe that node and check the Non-terminated Pods section.

kubectl describe node masternode

Non-terminated Pods:          (8 in total)
  Namespace                   Name                                        CPU Requests  CPU Limits  Memory Requests  Memory Limits  AGE
  ---------                   ----                                        ------------  ----------  ---------------  -------------  ---
  kube-system                 calico-kube-controllers-76d4774d89-vmsnf    0 (0%)        0 (0%)      0 (0%)           0 (0%)         30d
  kube-system                 calico-node-t4qzr                           250m (12%)    0 (0%)      0 (0%)           0 (0%)         30d
  kube-system                 coredns-66bff467f8-v9mn5                    100m (5%)     0 (0%)      70Mi (1%)        170Mi (4%)     30d
  kube-system                 etcd-ip-10-0-0-38                           0 (0%)        0 (0%)      0 (0%)           0 (0%)         30d
  kube-system                 kube-apiserver-ip-10-0-0-38                 250m (12%)    0 (0%)      0 (0%)           0 (0%)         30d
  kube-system                 kube-controller-manager-ip-10-0-0-38        200m (10%)    0 (0%)      0 (0%)           0 (0%)         30d
  kube-system                 kube-proxy-nf7jp                            0 (0%)        0 (0%)      0 (0%)           0 (0%)         30d
  kube-system                 kube-scheduler-ip-10-0-0-38                 100m (5%)     0 (0%)      0 (0%)           0 (0%)         30d

If the cluster have metrics server deployed then below commands are useful to know pod and node CPU utilization

kubectl top podname
kubectl top nodename
-- Arghya Sadhu
Source: StackOverflow

8/24/2020

You can get by using

kubectl top pods    # This will give you which pod is using how much CPU and Memory

kubectl top nodes   # This will give you which node is using how much CPU and Memory

Make sure metric server has deployed on the cluster.

-- Dashrath Mundkar
Source: StackOverflow