GKE 和 prometheus 监控

Posted

技术标签:

【中文标题】GKE 和 prometheus 监控【英文标题】:GKE and prometheus monitoring 【发布时间】:2020-08-09 17:25:29 【问题描述】:

我有一个启用了监控和日志记录的 GKE 集群 (1.15)。 到目前为止,我们已经使用 metrics-server 在 stackdriver 上进行指标监控。 对于其他自定义指标,我们使用了 custom-metrics-adapter 来抓取指标并使用 prometheus-to-sd 将它们导出到 stackdriver。

我想开始看看 prometheus 是否可以为我们提供其他功能,例如 HPA 的聚合指标。

在 GCP 市场上,可以选择在 GKE 集群上部署“prometheus + Grafana”。 这基本上安装了几个组件:prometheus server + node exporters + alertsmanager + grafana + kube-state-metrics)。

我想了解的是,如果在度量服务器旁边安装 prometheus 是否是资源度量的一种重复。我的意思是,如果节点和工作负载的 cpu/mem 的默认资源监控是 metric-server 并且我们已经在 stackdriver 上拥有这种指标,并且默认的 prometheus.yaml 包括来自 kubernetes API 的 cpu/mem 资源指标,我们会有该信息的重复指标? (假设我们将添加将全部导出到 stackdriver 的 stackdriver-prometheus)

最佳实践是否应该通常是禁用 metrics-server 并让 prometheus 成为集群上唯一的监控解决方案,同时包括 prometheus-k8s-adapter? 还是我们应该禁用 prometheus.yaml 上的这些部分以不包含这些资源指标?

另外,是否所有 prometheus 指标都将被定义为外部指标并包含额外费用?

谢谢!

【问题讨论】:

【参考方案1】:

我想开始看看 prometheus 是否可以为我们提供其他功能,例如 HPA 的聚合指标。

是的,有可能,例如,请参阅以下文章:

Kubernetes HPA : ExternalMetrics+Prometheus Horizontal Pod Autoscale with Custom Prometheus Metrics

我想了解的是,在度量服务器旁边安装 prometheus 是否是资源度量的一种重复。

答案是否定的。 metrics-server 是轻量级、短期、内存中的,主要用于水平和垂直 Pod Autoscaler。你shouldn't use metrics-server when you need an accurate source of resource usage metrics。

最好的做法是否应该通常是禁用 metrics-server 并让 prometheus 成为集群上唯一的监控解决方案,同时包括 prometheus-k8s-adapter?

使用'prometheus + Grafana + node-exporter + kube-state-metrics + cAdvisor(集成到kubelet)+ alertmanager + prometheus adapter' 是一个不错的选择

【讨论】:

非常感谢您的回答。至于您的最后评论,那么好的选择是使用“普罗米修斯方式”,这也意味着删除指标服务器?那么 prometheus-adapter 会取代它吗? 是的,您可以禁用 metrics-server 以支持您的 prometheus(使用自定义指标)。或者你可以让它继续运行,并将 prometheus 用于你自己的监控目的。

以上是关于GKE 和 prometheus 监控的主要内容,如果未能解决你的问题,请参考以下文章

Prometheus Install

监控 GKE 上运行的 Cronjob

Prometheus学习之Blackbox

Prometheus学习之Blackbox

Prometheus学习之Blackbox

Prometheus部署及服务发现