【问题标题】:How to alert on the Kubernetes Cluster health?如何提醒 Kubernetes 集群健康?
【发布时间】:2016-09-07 09:27:18
【问题描述】:
我们在 Google Cloud (GKE) 上作为托管 Kubernetes 集群运行,并使用 Prometheus 对其进行抓取。
我的问题与this 类似,但我想知道在 K8s 集群中需要注意哪些最重要的指标并可能发出警报?
这是一个 K8s 而不是 Prometheus 的问题,但我真的很感激一些提示。如果我的问题含糊不清,请告诉我,以便我改进。
【问题讨论】:
标签:
kubernetes
google-kubernetes-engine
prometheus
【解决方案1】:
etcd 是 Kubernetes 的基础。因此,有一套好的警报是很重要的。
我们编写了this blog post 并为其创建了警报规则,并在最后提供了一个基本集。
Prometheus 格式的重要指标的其他来源是 Kubelet 和 cAdvisor、API 服务器以及相当新的 kube-state-metrics。
对于那些,不幸的是,我不知道任何与 etcd 一样的公共警报规则集。
通常,您希望确保作为应用程序的组件完美运行,例如:
- 我的 kubelets/API 服务器是否正在运行/可访问? (
up 公制)
- 它们的响应延迟和错误率是否在界限内?
- API 服务器可以访问 etcd 吗?
然后是 Kubernetes 业务逻辑方面,例如:
- 是否有 pod 一直处于非就绪/crashloop 状态?
- 我的集群中是否有足够的 CPU/内存容量?
- 我的部署副本预期是否得到满足?
不幸的是,这不是一个简单的解决方案,但是编写大致涵盖上述示例范围的警报规则应该会让你走得很远。