如何使用指标服务器计算kubernetes中特定Pod的利用率?

时间:2019-11-26 06:19:33

标签: kubernetes kubectl

我想计算Kubernetes中单个Pod的CPU和内存利用率百分比。为此,我正在使用指标服务器API

  1. 从指标服务器,我从此命令获取利用率

kubectl顶部窗格--all-namespaces

kube-system   coredns-5644d7b6d9-9whxx                   2m           6Mi
kube-system   coredns-5644d7b6d9-hzgjc                   2m           7Mi
kube-system   etcd-manhattan-master                      10m          53Mi
kube-system   kube-apiserver-manhattan-master            23m          257Mi

但是我想要单个pod的利用率百分比CPU%和MEM%

从top命令的输出来看,不清楚它消耗多少CPU和内存?

我不想使用Prometheus运算符,因为我看到了一个公式

sum (rate (container_cpu_usage_seconds_total{image!=""}[1m])) by (pod_name)

我可以使用MetricsServer API进行计算吗?

我想这样计算

CPU% =((2 + 2 + 10 + 23)/ CPU总数)* 100

MEM% =((6 + 7 + 53 + 257)/ AllocatableMemory)* 100

请告诉我我是对还是错。因为我没有在Kubernetes文档中看到任何用于计算Pod利用率的标准公式

1 个答案:

答案 0 :(得分:1)

很遗憾,kubectl top pods仅提供了quantity values,而没有百分比。

Here是如何解释这些值的很好的解释。

当前无法使用kubectl top命令以百分比形式列出pod资源的使用情况。

您仍然可以选择Grafana with Prometheus,但已经有人说您不想使用它(但是,社区中另一个有类似问题的成员可能会这样做,所以我在这里提到它)。

编辑:

您的公式是正确的。他们将计算所有Pod消耗的CPU / Mem相对于您获得的CPU / Mem总数。

我希望它会有所帮助。