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 监控的主要内容,如果未能解决你的问题,请参考以下文章