更新时间:2024-11-04 GMT+08:00

kube-prometheus-stack插件

插件简介

kube-prometheus-stack通过使用Prometheus Operator和Prometheus,提供简单易用的端到端Kubernetes集群监控能力,同时还具备自定义插件规格、对接Grafana、高可用、节点亲和等能力。

kube-prometheus-stack插件的核心组件包括prometheusOperator、prometheus、alertmanager、thanosSidecar、thanosQuery、adapter、kubeStateMetrics、nodeExporter、grafana。

  • prometheusOperator:根据自定义资源(Custom Resource Definition / CRDs)来部署和管理Prometheus Server,同时监控这些自定义资源事件的变化来做相应的处理,是整个系统的控制中心。
  • prometheus(Server):Operator根据自定义资源Prometheus类型中定义的内容而部署Prometheus Server集群,这些自定义资源可以看作是用来管理Prometheus Server集群的StatefulSets资源。
  • alertmanager:插件的告警中心,主要用于接收Prometheus发送的告警并通过去重、分组、分发等能力管理告警信息。
  • thanosSidecar:高可用场景和Prometheus运行在同一个Pod中,用于实现普罗指标数据的持久化存储。
  • thanosQuery:普罗高可用时PromQL查询的入口,能够对来自Store或Prometheus的相同指标进行重复数据删除。
  • adapter(custom-metrics-apiserver):将自定义指标聚合到原生的Kubernetes API Server。
  • kube-state-metrics:将Prometheus的metrics数据格式转换成Kubernetes API接口能识别的格式。kube-state-metrics组件在默认配置下,不采集Kubernetes资源的所有labels和annotation。如需采集,请参考如何修改kube-state-metrics组件的采集配置?章节进行配置。
  • nodeExporter:每个节点上均有部署,收集Node级别的监控数据。
  • grafana:可视化浏览普罗监控数据。Grafana会默认创建大小为5 GiB的存储卷,卸载插件时Grafana的存储卷不随插件被删除。
  • clusterProblemDetector:用于监控集群异常。

约束和限制

目前kube-prometheus-stack插件暂不支持UCS本地集群。

插件部署模式

kube-prometheus-stack插件在部署时支持Agent模式和Server模式。

  • Agent模式下,插件占用集群资源较低,为集群提供普罗指标采集能力,但不支持基于自定义普罗语句的HPA及健康诊断功能。
  • Server模式支持基于自定义普罗语句的HPA及健康诊断功能,依赖PVC,内存消耗较大。

注意事项

kube-prometheus-stack为系统监控插件,当集群资源不足时,Kubernetes会优先保证插件Pod的调度。

权限说明

kube-prometheus-stack插件中的node-exporter组件会监控Docker的存储磁盘空间,需要读取宿主机的/var/run/dockersock的获取Docker的info的数据。

node-exporter运行需要以下特权:

  • cap_dac_override:读取Docker的info的数据。

升级插件

  1. 选择一个容器舰队或者未加入舰队的集群。

    图1 选择舰队或未加入舰队的集群

  2. 单击“容器洞察 > 集群总览”页签查看已开启监控的集群,选择待升级插件的集群,单击操作列的“查看详情”,进入概览页。
  3. 页面右上角会展示kube-prometheus-stack插件的版本,当安装的插件版本非最新版本时,可选择升级插件,体验插件的最新功能。

不同规格的资源配额要求

安装kube-prometheus-stack插件时,需确保集群中有足够的CPU、内存等可调度资源。Agent模式默认规格的资源配额要求请参见表1,Server模式下不同插件规格的资源配额要求请参见表2

表1 Agent模式默认规格的资源配额要求

插件规格

容器实例

CPU配额

内存配额

默认规格

prometheusOperator

申请:100m

限制:500m

申请:100Mi

限制:500Mi

prometheus

申请:500m

限制:4

申请:1Gi

限制:8Gi

kube-state-metrics

申请:200m

限制:500m

申请:200Mi

限制:500Mi

nodeExporter

申请:200m

限制:500m

申请:200Mi

限制:1Gi

grafana

申请:100m

限制:500m

申请:200Mi

限制:2Gi

表2 Server模式不同规格的资源配额要求

插件规格

容器实例

CPU配额

内存配额

演示规格(100容器以内)

prometheusOperator

申请:200m

限制:500m

申请:200Mi

限制:500Mi

prometheus

申请:500m

限制:2

申请:2Gi

限制:8Gi

alertmanager

申请:200m

限制:1

申请:200Mi

限制:1Gi

thanosSidecar

申请:100m

限制:1

申请:100Mi

限制:2Gi

thanosQuery

申请:500m

限制:2

申请:500Mi

限制:4Gi

adapter

申请:400m

限制:2

申请:400Mi

限制:1Gi

kube-state-metrics

申请:200m

限制:500m

申请:200Mi

限制:500Mi

nodeExporter

申请:200m

限制:500m

申请:200Mi

限制:1Gi

grafana

申请:200m

限制:500m

申请:200Mi

限制:2Gi

clusterProblemDetector

申请:100m

限制:200m

申请:200Mi

限制:400Mi

小规格(2000容器以内)

prometheusOperator

申请:200m

限制:500m

申请:200Mi

限制:500Mi

prometheus

申请:4

限制:8

申请:16Gi

限制:32Gi

alertmanager

申请:500m

限制:1

申请:500Mi

限制:1Gi

thanosSidecar

申请:500m

限制:1

申请:500Mi

限制:2Gi

thanosQuery

申请:2

限制:4

申请:2Gi

限制:16Gi

adapter

申请:2

限制:4

申请:4Gi

限制:16Gi

kube-state-metrics

申请:500m

限制:1

申请:500Mi

限制:1Gi

nodeExporter

申请:200m

限制:500m

申请:200Mi

限制:1Gi

grafana

申请:200m

限制:500m

申请:200Mi

限制:2Gi

clusterProblemDetector

申请:200m

限制:500m

申请:300Mi

限制:1Gi

中规格(5000容器以内)

prometheusOperator

申请:500m

限制:1

申请:500Mi

限制:1Gi

prometheus

申请:8

限制:16

申请:32Gi

限制:64Gi

alertmanager

申请:500m

限制:1

申请:500Mi

限制:2Gi

thanosSidecar

申请:1

限制:2

申请:1Gi

限制:4Gi

thanosQuery

申请:2

限制:4

申请:2Gi

限制:16Gi

adapter

申请:2

限制:4

申请:16Gi

限制:32Gi

kube-state-metrics

申请:1

限制:2

申请:1Gi

限制:2Gi

nodeExporter

申请:200m

限制:500m

申请:200Mi

限制:1Gi

grafana

申请:200m

限制:500m

申请:200Mi

限制:2Gi

clusterProblemDetector

申请:200m

限制:1

申请:400Mi

限制:2Gi

大规格(超过5000容器)

prometheusOperator

申请:500m

限制:1

申请:500Mi

限制:2Gi

prometheus

申请:8

限制:32

申请:64Gi

限制:128Gi

alertmanager

申请:1

限制:2

申请:1Gi

限制:4Gi

thanosSidecar

申请:2

限制:4

申请:2Gi

限制:8Gi

thanosQuery

申请:2

限制:4

申请:2Gi

限制:32Gi

adapter

申请:2

限制:4

申请:32Gi

限制:64Gi

kube-state-metrics

申请:1

限制:3

申请:1Gi

限制:3Gi

nodeExporter

申请:200m

限制:500m

申请:200Mi

限制:1Gi

grafana

申请:200m

限制:500m

申请:200Mi

限制:2Gi

clusterProblemDetector

申请:200m

限制:1

申请:400Mi

限制:2Gi