普罗米修斯规则因“不允许多对多匹配”而失败

pbn*_*pbn 1 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
Run Code Online (Sandbox Code Playgroud)

正在触发以下错误:

在操作的右侧找到匹配组 {instance="10.0.1.151:10250"} 的重复系列:[{ name ="kubelet_node_name", endpoint="https-metrics", instance="10.0.1.151 :10250”,作业=“kubelet”,metrics_path=“/metrics”,命名空间=“kube-system”,节点=“ip-10-0-1-151.eu-west-1.compute.internal”,服务="prometheus-operator-kubelet"}, { name ="kubelet_node_name", 端点 ="https-metrics", 实例 ="10.0.1.151:10250", job ="kubelet",metrics_path ="/metrics", 命名空间= "kube-system", node="ip-10-0-1-151.eu-west-1.compute.internal", service="kubelet"}];不允许多对多匹配:匹配标签必须一方面是独一无二的

这个规则有什么问题吗?

小智 6

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