2

我在 Google Container Engine 集群中使用 Kubernetes,我可以在 Stackdriver 日志中看到其中一个 Pod 由于 OutOfMemory 异常而倒下并自动重新启动。

是否有任何标准方法来监控这些事件?

我正在使用Heapster,它似乎没有提供任何关于 Pod 关闭和重启的指标。

4

3 回答 3

3

根据我们的 IT 系统管理员的说法,目前大多数用于实时监控和警告 Pod 故障的解决方案目前都不稳定或非常乏味。

我们最终开发了一个小脚本,它使用 Slack.com 网络服务进行邮件通知等。

如果我的答案不是现成的一键式解决方案,我很抱歉:-)

这是我们当前经验和搜索的真实反馈。

我希望在不久的将来,关于该主题的事情会迅速发展!

我们的代码(有效结果的简单解决方案):

https://github.com/OpenSensee/K8SWatch

于 2017-06-23T09:50:21.117 回答
2

有一个工具叫做kube-state-metrics(1),它提供了关于 k8s 对象的指标,包括容器的重启次数 (2)。Prometheus (3) 可以使用这些指标,如果重启计数高于指定数量,您可以在其中创建警报。

如果您决定采用这种方式,CoreOS 的 Prometheus Operator (4) 及其示例配置 (5) 可能会很有用,当我们最近将它部署到我们的集群时它非常有用。在该示例中,没有预定义的重启计数警报,但添加一个应该很容易。

(1) https://github.com/kubernetes/kube-state-metrics
(2) https://github.com/kubernetes/kube-state-metrics/blob/master/Documentation/pod-metrics.md
(3 ) https://prometheus.io/
(4) https://coreos.com/operators/prometheus/docs/latest/user-guides/getting-started.html
(5) https://github.com/coreos/ prometheus-operator/tree/master/contrib/kube-prometheus

于 2017-06-24T12:21:23.263 回答
0

您还可以使用 kubernetes 事件导出器来捕获 pod 故障的关键事件,例如 BackOff、Failed、Failed Scheduling、OOMKilled 等。它很容易设置。这是我博客上的设置指南

于 2022-01-22T18:58:00.323 回答