我使用 kubernetes api 和 kube 状态指标使用 prometheus 远程监控 eks 集群。在 Kubernetes API 中,我们有一个指标container_cpu_usage_seconds_total
它给出了 Pod 的 CPU 使用率。在 kube-state-metrics 中是否有类似的指标可以提供 CPU 使用率。实际上,我正在尝试获取与 kubernetes API 和 kube-state-metrics 完全不同的集群 cpu 使用情况,以下是计算。
kube状态度量:
< code > sum(kube _ pod _ container _ resource _ requests _ CPU _ cores)/sum(kube _ node _ status _ allocatable _ CPU _ cores)* 100 -得出101%
而kube-state-metrics给出的< code>12%在我看来是准确的。
< code>kubernetes-api:
sum(率(container_cpu_usage_seconds_total{id="/",kubernetes_io_hostname=~"^$Node$",作业=~"$作业$"}[5m])/sum(machine_cpu_cores{kubernetes_io_hostname=~"^$Node$",作业=~"$作业$"}) * 100
我不认为有任何指标在库贝-State度量提供CPU使用相比kubernetes-api
提前感谢。
不,kube_state_metric中没有针对每个容器的cpu使用情况的(一个)特定度量。
您获得的值:< code > sum(kube _ pod _ container _ resource _ requests _ CPU _ cores)/sum(kube _ node _ status _ allocatable _ CPU _ cores)* 100 = 101 可能是错误的,因为kube _ node _ status _ allocatable _ CPU _ cores和kube _ pod _ container _ resource _ requests _ CPU _ cores等指标被标记为已弃用。
同时,请注意,还有kube _ pod _ container _ resource _ limits _ CPU _ cores这样的指标。你的容器可能已经设置了资源限制,这就是为什么你的结果可能超过100 %。如果您设置了每个容器的限制,请检查资源限制是否低于资源请求,然后您的计算应如下所示:< code >[sum(kube _ pod _ container _ resource _ requests _ CPU _ cores)-sum(kube _ pod _ container _ resource _ limits _ CPU _ cores)]/sum(kube _ node _ status _ allocatable _ CPU _ cores)* 100 。
查看容器和节点kube_state_metrics中的每个资源指标:node_metrics、pod_container_metrics。