在我们的Kuberenetes集群中,我们遇到了零星节点耗尽内存并且Linux调用OOM杀手的零星情况.查看日志,似乎调度到节点上的Pod请求的内存多于节点可以分配的内存.
问题在于,当调用OOM杀手时,它会打印出进程列表及其内存使用情况.但是,由于我们所有的Docker容器都是Java服务,因此“进程名称”只显示为“java”,不允许我们追踪导致问题的特定Pod.
如何获取计划在特定节点上运行哪些Pod的历史记录以及何时?
最佳答案
我们使用Prometheus来监控OOM事件.
此表达式应报告内存使用量达到限制的次数:
rate(container_memory_failcnt{pod_name!=""}[5m]) > 0
仅供参考:这是正确文档的下一个最佳选择,the code