如何监控 Kubernetes Pods 跌倒?
How to monitor Kubernetes Pods falling over?
我在 Google 容器引擎集群中使用 Kubernetes,我可以在 Stackdriver 日志中看到其中一个 Pods 由于 OutOfMemory 异常而崩溃并自动重启。
是否有监控这些事件的标准方法?
我正在使用 Heapster,它似乎没有提供任何关于 Pods 关闭和重新启动的指标。
根据我们的 IT 系统管理员的说法,当前大多数针对 pods 故障进行实时监控和警报的解决方案目前都不稳定或非常乏味。
我们最终开发了一个小脚本,它使用 Slack.com 网络服务进行邮件通知等。
如果我的回答不是现成的一键式解决方案,我很抱歉:-)
这是我们当前体验和搜索的真实反馈。
我预计在不久的将来,该主题的进展会很快!
我们的代码(有效结果的简单解决方案):
有一个工具叫做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
您还可以使用 kubernetes 事件导出器来捕获 pods 失败的关键事件,例如 BackOff、失败、调度失败、OOMKilled 等。它很容易设置。这是我博客上的 Setup Guide。
我在 Google 容器引擎集群中使用 Kubernetes,我可以在 Stackdriver 日志中看到其中一个 Pods 由于 OutOfMemory 异常而崩溃并自动重启。
是否有监控这些事件的标准方法?
我正在使用 Heapster,它似乎没有提供任何关于 Pods 关闭和重新启动的指标。
根据我们的 IT 系统管理员的说法,当前大多数针对 pods 故障进行实时监控和警报的解决方案目前都不稳定或非常乏味。
我们最终开发了一个小脚本,它使用 Slack.com 网络服务进行邮件通知等。
如果我的回答不是现成的一键式解决方案,我很抱歉:-)
这是我们当前体验和搜索的真实反馈。
我预计在不久的将来,该主题的进展会很快!
我们的代码(有效结果的简单解决方案):
有一个工具叫做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
您还可以使用 kubernetes 事件导出器来捕获 pods 失败的关键事件,例如 BackOff、失败、调度失败、OOMKilled 等。它很容易设置。这是我博客上的 Setup Guide。