为内存达到 90% 且未暴露于 Internet(后端微服务)的 kubernetes pod 配置通知/警报的方法

Posted

技术标签:

【中文标题】为内存达到 90% 且未暴露于 Internet(后端微服务)的 kubernetes pod 配置通知/警报的方法【英文标题】:Way to configure notifications/alerts for a kubernetes pod which is reaching 90% memory and which is not exposed to internet(backend microservice) 【发布时间】:2020-12-14 07:16:51 【问题描述】:

我目前正在研究一种警报/通知解决方案,我们在 kubernetes 上以前端和后端服务的方式部署微服务。如果遇到内存耗尽,后端服务曾多次出现无法重新启动或达到 90% 分配的 pod 限制的情况。为了识别这些 pod,我们需要一个警报机制来查看它们何时发生故障或饱和水平。我们有 prometheus 和 grafana 作为监控服务,但无法配置警报,因为我对这些的了解非常有限,但是提供的任何建议和参考资料都可以帮助我详细了解实现这一点的方法。请让我知道 我确实在互联网上对此进行了尝试,但几乎所有都指向节点级别,仅集群级别监控。 :(

enter image description here

用于检查内存使用情况的查询是: sum (container_memory_working_set_bytesimage!="",name=~"^k8s_.*",namespace=~"^$namespace$",pod_name=~"^$deployment-[a-z0-9]+-[a- z0-9]+") by (pod_name)

【问题讨论】:

请详细说明您的问题。它是您的本地环境,或者您正在使用云提供商。当您使用 PrometheusGrafana 时,您是否检查了 this docs 您是否尝试使用 Prometheus AlertManager ?请分享您的警报规则。 您好 PjoterS,我们有 prometheus 来收集指标和 grafana 来可视化仪表板。在 grafana 中,我们有 akubernetes 部署详细信息(由 prometheus 提供)仪表板,该仪表板具有 cpu 面板,内存面板显示所有 pod 的消耗 ~50 个 pod。我想为内存消耗超过 85% 的任何 pod 设置警报和通知,通知成员使用 pod 详细信息和图像消耗高价值的资源。我可以通过微软团队整合这个警报。但需要的警报结果未实现。如果这可以在 grafana 本身中实现? 【参考方案1】:

我最近在谷歌上看到了这个。它可能对你有帮助。 https://groups.google.com/u/1/g/prometheus-users/c/1n_z3cmDEXE?pli=1

【讨论】:

您好拉贾,感谢您的回复。但是这些需要在prometheus alert manager 本身配置还是在grafana 里面配置?

以上是关于为内存达到 90% 且未暴露于 Internet(后端微服务)的 kubernetes pod 配置通知/警报的方法的主要内容,如果未能解决你的问题,请参考以下文章

linux内存黑洞

Lsass.exe进程占用大量内存

如何让 Python 多线程管道使用 90% 的可用内存?

OpenAI用GPT-3与小学生比数学,水平达90%!

OpenAI用GPT-3与小学生比数学,水平达90%!

android 内存泄漏问题