Kubernetes 如何避免AKS autoscaler触发普罗米修斯警报?

Kubernetes 如何避免AKS autoscaler触发普罗米修斯警报?,kubernetes,prometheus,autoscaling,prometheus-alertmanager,Kubernetes,Prometheus,Autoscaling,Prometheus Alertmanager,我在Azure Aks上有一个群集,并启用群集自动缩放器,因此如果由于资源限制而无法调度pod,则节点池中的节点数将增加,以满足应用程序的需求。我在那个节点池上有一些守护程序,所以也会创建一些默认的pod 但是,也会定期检查节点是否缺少运行吊舱,然后根据需要减少节点数量。这种自动缩小节点数量的能力 我使用普罗米修斯来监控我的集群,我有两条规则来监控我的吊舱和节点,如果吊舱/节点异常,我想通知我的队友 - alert: node-down expr: kube_node_status_cond

我在Azure Aks上有一个群集,并启用群集自动缩放器,因此如果由于资源限制而无法调度pod,则节点池中的节点数将增加,以满足应用程序的需求。我在那个节点池上有一些守护程序,所以也会创建一些默认的pod

但是,也会定期检查节点是否缺少运行吊舱,然后根据需要减少节点数量。这种自动缩小节点数量的能力

我使用普罗米修斯来监控我的集群,我有两条规则来监控我的吊舱和节点,如果吊舱/节点异常,我想通知我的队友

- alert: node-down
  expr: kube_node_status_condition{condition="Ready",status!="true"} > 0
  for: 5m
  labels:
    severity: p0
    app: kube-state
    category: node-availability
  annotations:
    summary: '[p0] Node status abnormal'
    description: 'Node `{{ $labels.node }}` down'

- alert: pod-down
  expr: topk(1, (kube_pod_status_ready{condition="false", pod=~".*thanos.*|.*prometheus.*|.*fluentd.*"} > 0) * on(pod) group_left(node) kube_pod_info) by (node)
  for: 5m
  labels:
    severity: p0
    app: kube-state
    category: pod-availability
  annotations:
    summary: '[p0] Pod status abnormal'
    description: 'Pod {{ range printf "(kube_pod_status_ready{condition=\"false\", pod=~\".*thanos.*|.*prometheus.*|.*fluentd.*\"} > 0)* on(pod) group_left() kube_pod_info{node=\"%s\"}" .Labels.node | query }}`{{ .Labels.pod }}` {{ end }}down in node `{{ $labels.node }}`'
但是,自动缩放器总是在缩小比例时触发这两条规则

是否有其他或更好的解决方案来避免自动缩放触发更改规则? 我只想在节点/吊舱真的异常时监视并得到通知

- alert: node-down
  expr: kube_node_status_condition{condition="Ready",status!="true"} > 0
  for: 5m
  labels:
    severity: p0
    app: kube-state
    category: node-availability
  annotations:
    summary: '[p0] Node status abnormal'
    description: 'Node `{{ $labels.node }}` down'

- alert: pod-down
  expr: topk(1, (kube_pod_status_ready{condition="false", pod=~".*thanos.*|.*prometheus.*|.*fluentd.*"} > 0) * on(pod) group_left(node) kube_pod_info) by (node)
  for: 5m
  labels:
    severity: p0
    app: kube-state
    category: pod-availability
  annotations:
    summary: '[p0] Pod status abnormal'
    description: 'Pod {{ range printf "(kube_pod_status_ready{condition=\"false\", pod=~\".*thanos.*|.*prometheus.*|.*fluentd.*\"} > 0)* on(pod) group_left() kube_pod_info{node=\"%s\"}" .Labels.node | query }}`{{ .Labels.pod }}` {{ end }}down in node `{{ $labels.node }}`'