Сценарий: под в Pending
Вопрос
Новый под висит в Pending уже 10 минут. Как будешь искать причину?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
`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 ошибок.