srk*_*Z84 7 java linux linux-kernel kubernetes
在我们Kuberenetes集群,我们正在运行到零星的情况下群集节点运行的内存和Linux调用OOM杀手.查看日志,似乎调度到节点上的Pod请求的内存多于节点可以分配的内存.
问题在于,当调用OOM杀手时,它会打印出进程列表及其内存使用情况.但是,由于我们所有的Docker容器都是Java服务,因此"进程名称"只显示为"java",不允许我们追踪导致问题的特定Pod.
如何获取计划在特定节点上运行哪些Pod的历史记录以及何时?
Cam*_*mil 10
您现在可以使用 kube-state-metricskube_pod_container_status_terminated_reason来检测 OOM 事件
kube_pod_container_status_terminated_reason{reason="OOMKilled"}
kube_pod_container_status_terminated_reason{container="addon-resizer",endpoint="http-metrics",instance="100.125.128.3:8080",job="kube-state-metrics",namespace="monitoring",pod="kube-state-metrics-569ffcff95-t929d",reason="OOMKilled",service="kube-state-metrics"}
Run Code Online (Sandbox Code Playgroud)
我们使用Prometheus来监控OOM事件。
此表达式应报告内存使用量达到限制的次数:
rate(container_memory_failcnt{pod_name!=""}[5m]) > 0
Run Code Online (Sandbox Code Playgroud)
仅供参考:这是仅次于正确文档和代码的最佳选择
| 归档时间: |
|
| 查看次数: |
6141 次 |
| 最近记录: |