如何提醒 Kubernetes 集群健康状况?

How to alert on the Kubernetes Cluster health?

我们 运行 在 Google Cloud (GKE) 上托管 Kubernetes 集群,并使用 Prometheus 对其进行抓取。

我的问题与 类似,但我想知道在 K8s 集群中需要注意哪些最重要的指标并可能发出警报?

这是一个 K8s 而不是 Prometheus 的问题,但我真的很感激一些提示。如果我的问题含糊不清,请告诉我,以便我改进。

etcd 是 Kubernetes 的基础。因此,拥有一套好的警报很重要。 我们编写了 this blog post 并为其创建了警报规则,并在最后提供了一个基础集。

Prometheus 格式的重要指标的其他来源是 Kubelet 和 cAdvisor、API 服务器以及相当新的 kube-state-metrics。 对于那些,不幸的是,我不知道有任何 public 警报规则集用于 etcd。

通常,您希望确保作为应用程序的组件能够完美运行,例如:

  • 我的 kubelets/API 服务器是 running/reachable 吗? (up 公制)
  • 他们的响应延迟和错误率是否在范围内?
  • API 服务器能否访问 etcd?

然后是 Kubernetes 业务逻辑方面,例如:

  • 是否有pods永远处于non-ready/crashloop状态?
  • 我的集群中有足够的 CPU/memory 容量吗?
  • 我的部署副本预期是否已实现?

不幸的是,这不是直接解决方案,但编写大致涵盖上述示例范围的警报规则应该会让您走得更远。