【发布时间】:2019-03-05 22:13:05
【问题描述】:
如果 pod 变得不健康并重新启动,为什么没有简单的方法来获取通知?
对我来说,这表明我不应该关心 pod 是否已重新启动,但为什么不呢?
【问题讨论】:
标签: kubernetes monitoring
如果 pod 变得不健康并重新启动,为什么没有简单的方法来获取通知?
对我来说,这表明我不应该关心 pod 是否已重新启动,但为什么不呢?
【问题讨论】:
标签: kubernetes monitoring
如果 pod/容器由于某种原因崩溃,Kubernetes 应该提供可靠性/可用性,它将在集群中的其他地方启动。话虽如此,您可能需要警告和警报(如果您的 pod 进入 Crashloopbackoff。
虽然您可以编写自己的工具,但您可以监视集群中的特定事件,然后对使用其中一些工具的事件发出警报/警告:
【讨论】:
将 Pod 视为短暂的实体 - 它们可以存在于不同的节点中,它们可以崩溃,它们可以重新开始......
Kubernetes 负责处理 Pod 的 lifecycle。你的工作是告诉它在哪里运行(关联规则)以及如何判断一个 pod 是否为healthy。
有很多方法可以监控 pod 崩溃。例如 - prometheus 与 Kubernetes 有很好的集成。
【讨论】:
I wrote an open source tool to do this called Robusta。 (是的,它是以咖啡命名的。)
您可以将通知发送到多个目的地 - 这是 Slack 的屏幕截图。
在后台,我们使用自己的 Kubewatch 分支来跟踪 APIServer 事件,但我们正在添加多个功能,例如获取日志。
您在 YAML 中定义触发器和操作:
- triggers:
- on_pod_update: {}
actions:
- restart_loop_reporter:
restart_reason: CrashLoopBackOff
- image_pull_backoff_reporter:
rate_limit: 3600
每个动作都使用 Python 函数定义,但您通常不需要自己编写它们,因为我们有 50 多个内置动作。 (查看一些示例,here。)
【讨论】: