gpt4 book ai didi

kubernetes - 我如何提醒 kubernetes 中的 Pod Eviction 或 Failed && Evicted pod

转载 作者:行者123 更新时间:2023-12-05 01:27:35 24 4
gpt4 key购买 nike

我可以从 pod 描述中看到我的 pod 由于内存压力而被“逐出”而“失败”。但是我如何使用 prometheus 警报规则或其他方式测试太多“失败并被驱逐”的 pod?

我安装了 Prometheus Operator,我可以看到失败 Pod 的指标,但看不到 Failed 和 Evicted

kubectl describe pod 给出:

Name:         besteffort-evictme-001
Namespace: skyfii
Priority: 0
Node: ip-172-17-2-169.ap-southeast-2.compute.internal/
Start Time: Fri, 24 Sep 2021 15:28:53 +1000
Labels: <none>
Annotations: kubernetes.io/psp: eks.privileged
Status: Failed
Reason: Evicted
Message: The node was low on resource: memory. Container termination-demo-container was using 17165108Ki, which exceeds its request of 0.
IP:
IPs: <none>
Containers:

普罗米修斯规则:

kube_pod_status_phase{phase="Failed"} > 0

显示失败的 pod

kube_pod_status_phase{endpoint="http",instance="172.17.3.141:8080",job="kube-state-metrics",namespace="skyfii",phase="Failed",pod="besteffort-evictme-001",service="prometheus-kube-state-metrics"}

但是什么都没有显示

kube_pod_container_status_terminated_reason{reason="Evicted"} > 0

有什么想法吗?

谢谢卡尔

最佳答案

看来我需要更新我的 kube-prometheus-stack helm chart 版本。

我们在 pod 描述中看到的“Evicted”Reason 挂起了 podStatus enter image description here

较新的 kube-prometheus-stack 版本引入了 kube-state-metrics (v.2) 的更高版本 (v.2),后者又暴露了 kube_pod_status_reason

我将升级然后重构我的 prometheus 查询以使用这个新指标,并在它正常工作时发回答案。

干杯卡尔

升级到 kube-prometheus-stack v 18.1.0 允许我这样做:- enter image description here

这样我就可以设计我现在需要的查询了

我将其添加到我的 prometheus alertmanager 规则中kube-prometheus-stack 的 Values.yaml 的 prometheusAdditionalRulesMap 部分


- name: kubernetes-container-evictions

rules:

# Mem pressure evicted pods are left in a Failed state, alert if we see too many failed pods

# NB you will need to delete the failed pods after investigating

- alert: FailedEvictedPods

expr: sum by(namespace, pod) (kube_pod_status_phase{phase="Failed"} > 0 and on(namespace, pod) kube_pod_status_reason{reason="Evicted"} > 0) > 0

for: 10m

labels:

severity: warning

annotations:

message: 'Failed Evicted pod:{{ $labels.pod }} namespace:{{ $labels.namespace }}'


- alert: TooManyEvictedPods

expr: sum(kube_pod_status_reason{reason="Evicted"}) >= 2

labels:

severity: high

annotations:

message: 'Too many Failed Evicted Pods: {{ $value }}'

现在我得到了我想要的警报 :-)

关于kubernetes - 我如何提醒 kubernetes 中的 Pod Eviction 或 Failed && Evicted pod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69322382/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com