Lazy loaded image
运维管理
Prometheus Operator 监控 CRD 资源动态生成 Prometheus 配置
Words 694Read Time 2 min
2026-2-4
2026-2-4
date
related_level
slug
prometheus_operator
type
Post
relate_date
summary
Prometheus Operator 提供 Kubernetes 原生的 Prometheus 及相关监控组件部署管理,通过 CRD 自动检测配置变更
status
Published
tags
可观测性
category
运维管理
last_updated
Feb 4, 2026 05:06 PM
是否已更新
orginal_page
是否推荐
参考资料
  • Prometheus Operator 提供 Kubernetes 原生的 Prometheus 及相关监控组件的部署和管理
Prometheus Operator 会检测以下 CRD 的变更
  • Prometheus 定义所需的 Prometheus 部署
PrometheusAgent 以 agent 模式运行,隐藏部分配置选项
  • PrometheusRules selectors
  • alerting
  • remote-read, storage, Thanos sidecars
    • 保证数据流转到中央节点
  • PrometheusRule 定义一组所需的 Prometheus 警报和/或记录规则
  • ThanosRuler 定义所需的 Thanos Ruler 部署
  • Alertmanager 定义所需的 Alertmanager 部署
  • AlertmanagerConfig 以声明方式指定 Alertmanager 配置,允许将警报路由到自定义接收器,并设置抑制规则
  • scrape 相关 CRD,详见后续介绍
    • ScrapeConfig
    • ServiceMonitor
    • PodMonitor
    • Probe
scrape 相关的 CRD 会匹配选定的监控对象并自动生成 Prometheus 抓取配置
ScrapeClass 定义适用于所有抓取资源的通用配置设置
  • 适用于 PodMonitor, ServiceMonitor, ScrapeConfig, Probe
  • 如果已经有了对应字段会合并,优先采用抓取资源显式定义的值
样例:TLS 配置
在抓取资源中引用 ScrapeClass
ScrapeConfig 指定要添加到 Prometheus 的抓取配置
  • Prometheus CRD 配置 scrapeConfigSelector 字段来确定使用哪些 ScrapeConfig
支持外部目标发现
静态服务发现
文件服务发现
设置如下 Configmap
还需要挂载对应 Configmap 到 Prometheus CRD
HTTP 服务发现
  • DNS 服务发现
  • Kubernetes 服务发现
  • 由云服务商提供的服务发现
ServiceMonitor 通过 selector 匹配要监控的一组 EndpointSlice 或 Endpoints 对象
  • Prometheus CRD 配置 serviceMonitorSelector 字段来确定使用哪些 ServiceMonitor
PodMonitor 通过 selector 匹配要监控的一组 Pod
  • Prometheus CRD 配置 podMonitorSelector 字段来确定使用哪些 PodMonitor
Probe 通过 selector 匹配要监控的 ingress 或者静态 target
  • Prometheus CRD 配置 probeSelector 字段来确定使用哪些 Probe
  • 还需要一个 prober 来负责具体实现监控目标并提供指标供 Prometheus 抓取
    • 通常由 blackbox-export 实现
可以通过 admissionwebhook 验证配置是否有效
  • 用于验证 PrometheusRule, AlertmanagerConfig 对象
 
上一篇
OpenstackClient 使用指南
下一篇
kustomize 配合 helmCharts 直接生成 charts 资源纳入版本管理

Comments
Loading...