Когда кластер Kubernetes начинает «тормозить», первое, что нужно не гадать, а смотреть метрики. Для базового и действительно полезного мониторинга чаще всего используют kube-state-metrics и node-exporter. Они решают разные задачи и вместе дают целостную картину состояния инфраструктуры.
- kube-state-metrics — показывает состояние объектов Kubernetes
Он не собирает нагрузку CPU или RAM напрямую, а отдает метрики из API Kubernetes:
- — статус Pod, Deployment, DaemonSet, StatefulSet
- — количество реплик
- — рестарты контейнеров
- — Pending / CrashLoopBackOff / Failed
- — лимиты и requests ресурсов
- — состояние PVC, Job, HPA и других сущностей
Это инструмент для ответа на вопросы:
- 🔹 почему Pod не стартует
- 🔹 сколько реплик реально работает
- 🔹 есть ли рассинхрон между desired и current state
- 🔹 какие workload находятся в аварийном состоянии
- node-exporter — показывает состояние нод и ОС
Он собирает системные метрики с хоста:
- — загрузка CPU
- — использование памяти
- — disk I/O
- — файловые системы
- — network traffic
- — load average
- — количество открытых файлов и другие системные показатели
Это помогает понять:
- 🔹 упирается ли нода в CPU или RAM
- 🔹 не заканчивается ли место на диске
- 🔹 есть ли проблемы с сетью
- 🔹 почему приложение деградирует на уровне сервера
В чем разница?
- • kube-state-metrics = что происходит в Kubernetes как в оркестраторе
- • node-exporter = что происходит на самих серверах
Их часто путают, но они не заменяют друг друга. Если смотреть только kube-state-metrics, можно пропустить перегрузку ноды. Если использовать только node-exporter, не будет видно логики самого кластера: статусов Pod, реплик и rollout.
Что обычно мониторят в первую очередь ✅
- • Pod в статусах Pending, Failed, CrashLoopBackOff
- • количество рестартов контейнеров
- • недоступные Deployment и StatefulSet
- • загрузку CPU и памяти нод
- • свободное место на дисках
- • network errors и saturation
- • расхождение между requests/limits и реальным потреблением
Практический стек
Обычно оба экспортера подключают к Prometheus, а визуализацию строят в Grafana. Такой набор считается стандартом для Kubernetes-мониторинга:
- • Prometheus — сбор метрик
- • kube-state-metrics — метрики ресурсов K8s
- • node-exporter — метрики нод
- • Grafana — дашборды и алерты 📈
Итог
Если нужен адекватный мониторинг Kubernetes, начинать стоит именно с этой связки. kube-state-metrics показывает здоровье объектов кластера, node-exporter — здоровье инфраструктуры. Вместе они позволяют быстрее находить причины инцидентов, а не только видеть их последствия 🚨
Подборку каналов про IT стоит посмотреть тем, кто хочет глубже разбираться в Kubernetes, DevOps и мониторинге.