kubectl顶级节点的指标不正确?

时间:2018-12-14 06:46:34

标签: kubernetes

我尝试通过metrics-server API获取k8s群集节点的CPU /内存使用率,但是我发现metrics-server的返回值低于实际使用的CPU /内存。

kubectl top命令的输出:kubectl top nodes

enter image description here

以下是 free 命令的输出,从中您可以看到内存使用率超过90%。

enter image description here

为什么差异如此之大?

2 个答案:

答案 0 :(得分:1)

kubectl top nodes反映了您的Kubernetes节点的实际使用情况。

例如:

您的节点具有 60GB 的内存,而您实际使用的是 30GB ,因此将占使用量的50%。

但是您可以请求例如:

100 MB ,并具有限制 200MB

这并不意味着您只消耗0.16%(100/60000)的内存,而是您的配置量。

答案 1 :(得分:0)

我知道这是一个老话题,但我认为问题仍然存在。

简单来说,kubectl top 命令仅显示实际资源使用情况,与清单中的请求/限制配置无关。

例如:

您可以获得特定节点的 400m:1Gi(cpu/内存)使用率,而总请求/限制为 1.5:4Gi(cpu/内存)。

您将观察到足够的可用资源来安排,但实际上它不起作用。

请求/限制直接影响节点资源(资源预留),但这并不意味着它们被完全使用(kubectl top nodes 显示的内容)。