【问题标题】:K8s: why is there no easy way to get notifications if a pod becomes unhealthy and is restarted?K8s:如果 pod 变得不健康并重新启动,为什么没有简单的方法来获取通知?
【发布时间】:2019-03-05 22:13:05
【问题描述】:

如果 pod 变得不健康并重新启动,为什么没有简单的方法来获取通知?

对我来说,这表明我不应该关心 pod 是否已重新启动,但为什么不呢?

【问题讨论】:

    标签: kubernetes monitoring


    【解决方案1】:

    如果 pod/容器由于某种原因崩溃,Kubernetes 应该提供可靠性/可用性,它将在集群中的其他地方启动。话虽如此,您可能需要警告和警报(如果您的 pod 进入 Crashloopbackoff

    虽然您可以编写自己的工具,但您可以监视集群中的特定事件,然后对使用其中一些工具的事件发出警报/警告:

    【讨论】:

      【解决方案2】:

      将 Pod 视为短暂的实体 - 它们可以存在于不同的节点中,它们可以崩溃,它们可以重新开始......

      Kubernetes 负责处理 Pod 的 lifecycle。你的工作是告诉它在哪里运行(关联规则)以及如何判断一个 pod 是否为healthy

      有很多方法可以监控 pod 崩溃。例如 - prometheus 与 Kubernetes 有很好的集成。

      【讨论】:

        【解决方案3】:

        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。)

        【讨论】:

          猜你喜欢
          • 2021-06-13
          • 2020-11-22
          • 2018-12-30
          • 2020-12-19
          • 1970-01-01
          • 2022-01-18
          • 2018-07-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多