【问题标题】:Top three most CPU utilized pods in a kubernetes clusterKubernetes 集群中 CPU 使用率最高的前三个 Pod
【发布时间】:2021-04-03 23:47:04
【问题描述】:

如何获得 Kubernetes 集群中 CPU 利用率最高的前三个 pod?

kubectl top po --all-namespaces 

以上命令为我提供了所有命名空间中所有 pod 的 CPU 和内存利用率。如何将其限制为仅使用 CPU 最多的三个 pod?

另外,我尝试按 CPU 排序,但似乎排序不起作用。

kubectl top po --all-namespaces --sort-by="cpu"

输出:

NAMESPACE     NAME                             CPU(cores)   MEMORY(bytes)
kube-system   weave-net-ksfp4                  1m           51Mi
kube-system   kube-controller-manager-master   10m          50Mi
kube-system   coredns-5644d7b6d9-rzd64         2m           6Mi
kube-system   weave-net-h4xlg                  1m           77Mi
kube-system   kube-proxy-lk9xv                 1m           19Mi
kube-system   coredns-5644d7b6d9-v2v4m         3m           6Mi
kube-system   kube-scheduler-master            2m           21Mi
kube-system   kube-apiserver-master            26m          228Mi
kube-system   kube-proxy-lrzjh                 1m           9Mi
kube-system   etcd-master                      12m          38Mi
kube-system   metrics-server-d58c94f4d-gkmql   1m           14Mi

【问题讨论】:

    标签: kubernetes


    【解决方案1】:

    排序应该在下一个版本中修复 - https://github.com/kubernetes/kubernetes/issues/81270

    同时你can use this

    kubectl top pod --all-namespaces --no-headers \
     | sort --key 3 --numeric \
     | tail -3
    

    【讨论】:

      【解决方案2】:

      你可以使用这个命令:

      kubectl top pods --all-namespaces  --sort-by=cpu | sort --reverse --key 3 --numeric | head -n 3
      

      head 命令将为您提供前 3 个 pod。

      【讨论】:

        【解决方案3】:

        有不同的方法可以实现这一点, 下面的例子

        1. --sort-by + head
        2. --sort-by + awk
        3. sort

        以下是--sort-by=cpu的所有节点

        $ kubectl top pod --all-namespaces --sort-by=cpu
        NAMESPACE     NAME                                   CPU(cores)   MEMORY(bytes)   
        default       rabbit                                 969m         1Mi             
        default       lion                                   912m         1Mi             
        kube-system   kube-apiserver-controlplane            42m          286Mi           
        kube-system   etcd-controlplane                      14m          36Mi            
        kube-system   kube-controller-manager-controlplane   12m          44Mi            
        kube-system   kube-scheduler-controlplane            4m           16Mi            
        kube-system   coredns-f9fd979d6-9x8vb                2m           8Mi   
        

        1. --sort-by + awk

        $ kubectl top pod --all-namespaces --sort-by=cpu | awk 'FNR <= 4'
        NAMESPACE     NAME                                   CPU(cores)   MEMORY(bytes)   
        default       rabbit                                 972m         1Mi             
        default       lion                                   900m         1Mi             
        kube-system   kube-apiserver-controlplane            42m          286Mi  
        

        2。 --sort-by + head

        $ kubectl top pod --all-namespaces --sort-by=cpu | head -n 4
        NAMESPACE     NAME                                   CPU(cores)   MEMORY(bytes)   
        default       rabbit                                 970m         1Mi             
        default       lion                                   909m         1Mi             
        kube-system   kube-apiserver-controlplane            43m          293Mi 
        

        3. sort

        $ kubectl top pod --all-namespaces | sort --reverse --numeric-sort --key 3 | head -n 4
        default       rabbit                                 971m         1Mi             
        default       lion                                   913m         1Mi             
        kube-system   kube-apiserver-controlplane            41m          286Mi           
        kube-system   etcd-controlplane                      15m          38Mi  
        

        注意:如果您不想打印标题,只需输入一个选项--no-headers

        【讨论】:

          【解决方案4】:

          Kubectl top 是一个有意简化的工具,不能很好地替代 Prometheus 和 Grafana 之类的工具。不如看看那些?

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2022-07-15
            • 1970-01-01
            • 2018-06-18
            • 2021-05-03
            • 1970-01-01
            • 2023-01-19
            • 2012-12-29
            相关资源
            最近更新 更多