Ответ вслух Middle Отладка в кластере обновлено

Сценарий: под в Pending

Вопрос

Новый под висит в Pending уже 10 минут. Как будешь искать причину?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Pending значит, что под не назначен на узел. Главная улика в событиях kubectl describe pod: планировщик пишет итог по узлам, например «0 из 5 доступны: 3 Insufficient memory, 2 had untolerated taint».

Что должно прозвучать в ответе

  • `kubectl describe pod`: события планировщика с причиной для каждого узла

  • Insufficient cpu/memory: requests не помещаются, проверить requests, свободную ёмкость (`describe node`), автоскейлер узлов

  • nodeSelector, affinity, taints и tolerations: есть ли вообще подходящие узлы

  • PVC: привязан ли, есть ли StorageClass, нет ли конфликта зон

  • Anti-affinity и topology spread: выполнимы ли ограничения при текущем числе узлов

  • Квоты и лимиты namespace, приоритеты подов

Что могут спросить следом

  • Почему автоскейлер узлов может не добавить узел?
  • Что такое preemption?

Разбор

Pending значит, что под не назначен на узел. Главная улика в событиях kubectl describe pod: планировщик пишет итог по узлам, например «0 из 5 доступны: 3 Insufficient memory, 2 had untolerated taint». Если ресурсов не хватает, смотрю, не завышены ли requests, и сколько свободно на узлах через describe node, где видны распределённые requests. Если в кластере автоскейлер, смотрю его логи: он не добавит узел, если под не поместится даже на новый узел или упёрлись в максимум группы. Если причина в ограничениях: проверяю nodeSelector и affinity, есть ли узлы с такими метками, taints на узлах и tolerations у пода. Для подов с томами проверяю PVC: Bound ли он, есть ли StorageClass, нет ли конфликта зон. Жёсткая anti-affinity с тремя репликами на двух узлах тоже даст Pending. Если под создаётся с высоким приоритетом, планировщик может вытеснить менее важные поды, это preemption.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.