kubernetes:测量资源/限制效率

kubernetes:测量资源/限制效率

我想了解我的部署/作业在消耗它们所请求的资源方面的“效率”。例如,如果一个作业在峰值时只使用 1CPU,但最终请求 320 个 CPU,那么我希望有一个仪表板/警报/指标来追查符合此条件的恶意 pod。

这样的东西存在吗?我发现最接近的是 grafana + promql,但理想情况下,现成的仪表板或其他解决方案会很棒。

我正在内部部署的 kubernetes 集群上运行它。

答案1

因此,有很多方法可以解决此问题。Grafana 就是其中之一。

首先,您可以使用资源请求和/或限制。基本上,请求是为 pod 中的容器保留的内存或 CPU 量。限制显然限制了可以使用的资源量。更多信息这里。您还可以使用资源配额来限制每个命名空间的资源使用量。您可以找到更多信息这里

这将用于控制资源,这也很重要 - 如果您想更进一步,还有集群自动缩放器。

严格来说,对于监控,您还可以使用不同的工具,正如您已经提到的,有 Grafana,但您也可以使用 EFK 堆栈。在 GKE 中,可以与 stackdriver 很好地集成以监控集群和组件,您也可以在 AWS 中实现这一点。

Kubernetes 内部还有更多工具。例如:

kubectl top pod --all-namespaces 将向您展示NAMESPACE NAME CPU(cores) MEMORY(bytes)用法。

我也在 StackOverflow 上写过类似的话题。希望对你有帮助。你可以找到答案这里

还有顾问

cAdvisor 是一个开源容器资源使用和性能分析代理 [...] cAdvisor 自动发现机器中的所有容器并收集 CPU、内存、文件系统和网络使用情况统计信息。cAdvisor 还通过分析机器上的“根”容器来提供整体机器使用情况。

这里是一篇关于如何处理这个问题的有趣文章。我想再测试一件与收集这些指标有关的事情,如果我发现一些有价值的东西,我会回来的。

相关内容