Usamos Prometheus para monitorear eventos OOM.
Esta expresión debe informar la cantidad de veces que el uso de la memoria ha alcanzado los límites:
rate(container_memory_failcnt{pod_name!=""}[5m]) > 0
FYI:esto es lo más parecido a los documentos adecuados, el código
Ahora puede usar kube-state-metrics kube_pod_container_status_terminated_reason
para detectar eventos 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"}
Historial de eventos para su espacio de nombres particular, ordenado por creaciónMarca de tiempo:
kubectl get events -n YOURNAMESPACE -o wide --sort-by=.metadata.creationTimestamp
O si desea verificar el historial de eventos para todos los espacios de nombres, ordenados por creaciónMarca de tiempo:
kubectl get events --all-namespaces -o wide --sort-by=.metadata.creationTimestamp