實驗一:使用命令kube_pod_status_phase查看pod對應狀態
1.當pod中容器狀態為ErrImagePull 時使用命令kube_pod_status_phase{pod=''}==1 查看pod狀態為Running
2.當pod中容器狀態為ImagePullBackOff 時使用命令kube_pod_status_phase{pod=''}==1 查看pod狀態pending
實驗二 使用命令 kube_pod_container_status_running直接查看容器狀態 0 代表異常、1代表正常:
1.當容器狀態為CrashLoopBackOff時可查看到容器是異常的
2.當容器狀態為Completed查看到容器是異常的
由上述實驗可得
kube_pod_status_phase命令查看到pod狀態,當pod中容器出現異常時容器檢查到pod的狀態仍然為Running(存在風險)
kube_pod_container_status_running 命令查看容器狀態,除了running狀態,其他狀態均視為異常(存在重復告警,解決方案為過濾掉正常容器的狀態比如Completed的pod)