为什么Prometheus Operator的ServiceMonitor需要release标签才可正常运行?
现象原因
- 你所使用的 Prometheus 实例由 Prometheus Operator 管理,Operator 会通过 Prometheus 资源的
spec.serviceMonitorSelector字段配置标签筛选规则,只有标签完全匹配该规则的 ServiceMonitor 才会被当前 Prometheus 实例识别、加载。 - 你环境中的 Prometheus 实例默认配置了匹配
release: prometheus标签的筛选规则,所以携带该标签的 ServiceMonitor 可以被正常识别,去掉该标签后不符合筛选条件,不会被 Prometheus 加载,对应的监控 target 自然会从 targets 列表中消失。
验证方法
你可以执行以下命令查看当前 Prometheus 实例的 ServiceMonitor 筛选规则:
kubectl get prometheus -n <你的Prometheus所在命名空间> <Prometheus实例名称> -o yaml
在返回的 YAML 中查看 spec.serviceMonitorSelector 字段即可看到对应的标签匹配规则。
内容的提问来源于stack exchange,提问作者Avi Mosseri
相关产品推荐
相关产品推荐

