监控 kubernetes pod 健康事件

Monitoring kubernetes pod health events

目前我已经安装了 kubernetes,包括 kube-state-metrics、prometheus 和 loki。对于大多数事情来说,这工作得很好,但我正在努力解决的一件事是找到容器可能重新启动的确切原因。

对于运行pods,很容易看出,即kubectl describe pod,例如,我得到以下事件:

kubectl describe pod pod-name
.....
Events:
  Type     Reason     Age                  From     Message
  ----     ------     ----                 ----     -------
  Warning  Unhealthy  19m (x9 over 3h29m)  kubelet  message-here

这对于解决容器多次重启的确切原因非常有用,尤其是在使用探测器时。但还有其他有用的事件。

但是我看不出有什么方法可以在 loki 或 prometheus 中保存此类事件。但也许我错过了什么。我原以为 kube-state-metrics 会包含此类信息,但似乎并非如此,我在 Loki 的任何地方也没有看到它。

关于如何保存此类事件的任何提示?

虽然 Prometheus 和 KSM 更侧重于指标,例如:'N number of pod restarts',但 Loki 可用于捕获事件。

一个很好的概述指南是 here which uses eventrouter 将事件推送到后端(例如 Loki 或 Elasticsearch)