首页 > 解决方案 > prometheus 规则因“不允许多对多匹配”而失败

问题描述

我有一个开箱即用的 kube-prometheus v0.3 设置,其中一个规则:

alert: KubeletTooManyPods
expr: max
  by(node) (max by(instance) (kubelet_running_pod_count{job="kubelet"}) *
  on(instance) group_left(node) kubelet_node_name{job="kubelet"}) / max by(node)
  (kube_node_status_capacity_pods{job="kube-state-metrics"}) > 0.95

正在触发以下错误:

在操作的右侧找到匹配组 {instance="10.0.1.151:10250"} 的重复系列:[{ name ="kubelet_node_name", endpoint="https-metrics", instance="10.0.1.151 :10250", job="kubelet", metrics_path="/metrics", namespace="kube-system", node="ip-10-0-1-151.eu-west-1.compute.internal", 服务="prometheus-operator-kubelet"}, { name ="kubelet_node_name", endpoint="https-metrics", instance="10.0.1.151:10250", job="kubelet", metrics_path="/metrics", namespace= "kube-system", node="ip-10-0-1-151.eu-west-1.compute.internal", service="kubelet"}]; 不允许多对多匹配:匹配的标签在一侧必须是唯一的

这条规则有什么问题?

标签: prometheus

解决方案


您应该检查 kube-system 命名空间中的服务,在您的情况下可以有重复的服务,“prometheus-operator-kubelet”和“kubelet”。


推荐阅读