【问题标题】:How to calculate Percentage utilization of particular pod in kubernetes with metrics server?如何使用度量服务器计算 Kubernetes 中特定 pod 的百分比利用率?
【发布时间】:2020-03-21 12:19:33
【问题描述】:

我想计算 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

但我想要单个 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 MILLICORES)*100

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

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

【问题讨论】:

  • 你可以安装由 stable/prometheus 名称提供的基于 prometheus 和 grafana 的 helm chart
  • 不,我只想使用 metrics-server

标签: kubernetes kubectl


【解决方案1】:

很遗憾,kubectl top pods 仅提供 quantity values 而不是百分比。

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

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

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

编辑:

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

我希望它有所帮助。

【讨论】:

  • 这个公式对 CPU 利用率是否正确 =(已用 cpu 核心数之和/1000*totalcpu 核心数)*100
  • 对于内存利用率 =(已用 Mib/可分配内存的总和)*100
  • 你必须这样看:1 个 CPU = 1 个核心 = 1000 毫秒。因此,如果您有 8 个 CPU,并且您的 pod 使用 400m,这意味着它们使用了您的 CPU 的 5%。这与记忆类似。简而言之:是的,从数学的角度来看,您的公式似乎是正确的。
  • 我知道。我的意思是说如果我从 kubectl top 命令中得到使用的内存。我可以通过上面的公式计算 CPU% 和 MEM% 吗
猜你喜欢
  • 1970-01-01
  • 2020-01-16
  • 2019-12-10
  • 1970-01-01
  • 2017-08-14
  • 2018-12-24
  • 2023-04-09
  • 2020-03-13
  • 1970-01-01
相关资源
最近更新 更多