如何提醒 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 容量吗?
- 我的部署副本预期是否已实现?
不幸的是,这不是直接解决方案,但编写大致涵盖上述示例范围的警报规则应该会让您走得更远。
我们 运行 在 Google Cloud (GKE) 上托管 Kubernetes 集群,并使用 Prometheus 对其进行抓取。
我的问题与
这是一个 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 容量吗?
- 我的部署副本预期是否已实现?
不幸的是,这不是直接解决方案,但编写大致涵盖上述示例范围的警报规则应该会让您走得更远。