如何使用指标服务器计算 kubernetes 中特定 pod 的利用率百分比?

UDI*_*SHI 5 kubernetes kubectl

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

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

kubectl top pods --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
Run Code Online (Sandbox Code Playgroud)

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

从 top 命令的输出中,不清楚它消耗了多少 cpu 和内存?

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

sum (rate (container_cpu_usage_seconds_total{image!=""}[1m])) by (pod_name)
Run Code Online (Sandbox Code Playgroud)

我可以使用MetricsServer API来计算吗?

我想这样计算

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

MEM% = ((6+7+53+257)/可分配内存)* 100

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

OhH*_*ark 2

不幸的是kubectl top pods,仅提供数量值,而不提供百分比。

这里很好地解释了如何解释这些值。

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

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

编辑:

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

我希望它有帮助。