Insufficient cpu, 2 Insufficient memory. Не было свободного процессора/памяти, для удовлетворения реквестов новых подов.
Штука рядовая, вычистил мусор, все поехало дальше Решил, что надо себе завести алерт на заканчивающиеся реквесты.
В Прометее нахожу метрику kube_node_status_allocatable_cpu_cores делаю sum, получаю число доступных для алокации ядер. Дальше суммирую метрику kube_pod_container_resource_requests_cpu_cores и получаю число больше, чем allocatable. Что выглядит странно, как-то поды обошли проблему Insufficient.
При этом в describe node видно, что реквесты на нодах на самом деле использованы не полностью.
Спустя какое-то время выясняю, что kube_pod_container_resource_requests_cpu_cores показывает реквесты и для подов со статусом completed. Но шедулер понятно эти поды не учитывает.
Метрики собираю kube-state экспортером.
Для масштаба подов, в статусе completed у меня с реквестами на 8 ядер, а в кластере 32 ядра.
Внимание вопрос - какую метрику использовать, чтобы предсказать что реквесты скоро закончатся(при том, что реального железа в кластере с запасом)?
Я б ещё добавил
Обсуждают сегодня