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 选择舰队或未加入舰队的集群
- 单击“容器洞察 > 集群总览”页签查看已开启监控的集群,选择待升级插件的集群,单击操作列的“查看详情”,进入概览页。
- 页面右上角会展示kube-prometheus-stack插件的版本,当安装的插件版本非最新版本时,可选择升级插件,体验插件的最新功能。
不同规格的资源配额要求
安装kube-prometheus-stack插件时,需确保集群中有足够的CPU、内存等可调度资源。Agent模式默认规格的资源配额要求请参见表1,Server模式下不同插件规格的资源配额要求请参见表2。
插件规格 |
容器实例 |
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 |
插件规格 |
容器实例 |
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 |