Prometheus kube_pod_container_status_waiting_reason не захватывает под CrashLoopBackOff причина

По определению, kube_pod_container_status_waiting_reason должен фиксировать причины для модуля в состоянии ожидания.

В моем кластере kubernetes есть несколько модулей, которые находятся в CrashLoopBackOff, но я не вижу этой причины, зафиксированной kube_pod_container_status_waiting_reason. Он фиксирует только две причины: ErrImagePull и ContainerCreating.

~$ k get pods -o wide --show-all --all-namespaces | grep Crash
cattle-system   cattle-cluster-agent-6f744c67cc-jlkjh       0/1       CrashLoopBackOff   2885       10d       10.233.121.247   k8s-4
cattle-system   cattle-node-agent-6klkh                     0/1       CrashLoopBackOff   2886       171d      10.171.201.127   k8s-2
cattle-system   cattle-node-agent-j6r94                     0/1       CrashLoopBackOff   2887       171d      10.171.201.110   k8s-3
cattle-system   cattle-node-agent-nkfcq                     0/1       CrashLoopBackOff   17775      171d      10.171.201.131   k8s-1
cattle-system   cattle-node-agent-np76b                     0/1       CrashLoopBackOff   2887       171d      10.171.201.89    k8s-4
cattle-system   cattle-node-agent-pwn5v                     0/1       CrashLoopBackOff   2859       171d      10.171.202.72    k8s-5

Запуск sum by (reason) (kube_pod_container_status_waiting_reason) в Prometheus дает следующие результаты:

Element                       Value
{reason="ContainerCreating"}    0
{reason="ErrImagePull"}         0

Я использую quay.io/coreos/kube-state-metrics:v1.2.0 изображение kube-state-metrics.

Что мне не хватает? Почему причина CrashLoopBackOff не отображается в запросе? Я хотел бы настроить оповещение, которое находит модули в состоянии ожидания с указанием причины. Итак, думаю об объединении kube_pod_container_status_waiting, чтобы найти контейнеры в состоянии ожидания, и kube_pod_container_status_waiting_reason, чтобы найти точную причину.

Пожалуйста помогите. Спасибо!




Ответы (1)


Вы столкнулись с этим. По сути, похоже, что вы используете kube-state-metrics 1.2.0 или более раннюю версию. Вы видите, что ImagePullBackOff и CrashLoopBackOff были добавлены в 1.3.0.

Итак, обновите свое изображение до:

k8s.gcr.io/kube-state-metrics:v1.3.0
quay.io/coreos/kube-state-metrics:v1.3.0

or

k8s.gcr.io/kube-state-metrics:v1.4.0
quay.io/coreos/kube-state-metrics:v1.4.0
person Rico    schedule 18.12.2018