Планировщик назначает Pod узлу, среда выполнения запускает контейнер на этом узле. Пока назначения нет, проверяют размещение; после назначения — получение образа, создание окружения и запуск.
Почему это важно
Когда Pod не размещается, сумма свободных ресурсов кластера может вводить в заблуждение. Проверьте запросы, доступное место и требования к каждому узлу. Добавление сервера поможет только тогда, когда новый узел подходит всем обязательным условиям.
Что подтверждено
Планировщик сначала отбирает допустимые узлы по требованиям Pod, затем оценивает варианты и записывает назначение выбранному узлу. Не каждый свободный узел является допустимым.
Граница применимости: Стандартная модель планирования Kubernetes.
Назначение определяет узел выполнения. Получение образа и запуск контейнеров выполняются позже, а готовность приложения проверяется отдельно.
Граница применимости: Разделение размещения, узловых компонентов и проверок готовности Kubernetes.
Если ни один узел не удовлетворяет обязательным требованиям, планировщик не выбирает просто «наименее плохой». Pod остаётся без назначения до появления допустимого варианта.
Граница применимости: Результат отбора узлов Kubernetes; отдельно возможны настроенные механизмы освобождения ресурсов.
Один Pod размещается целиком на одном узле. Свободные CPU и память нескольких узлов нельзя объединить, чтобы вместить Pod, слишком большой для каждого из них.
Граница применимости: Обычное размещение Pod Kubernetes по запросам ресурсов.
При жёстком ограничении распределения отсутствие подходящего узла оставляет Pod без размещения. Мягкое требование допускает размещение с предпочтением более равномерного распределения. Выбор между ними влияет и на доступность, и на необходимый запас.
Граница применимости: Ограничения распределения Pod по топологии; режимы DoNotSchedule и ScheduleAnyway.
Фаза Pending включает не только ожидание планировщика, но и подготовку уже назначенного Pod, например получение образов. Для диагноза нужно проверить назначение узла, события и состояние контейнеров.
Граница применимости: Фазы жизненного цикла Pod Kubernetes.
Не путать
Что проверить
- Проверьте, назначен ли Pod узлу: одного слова Pending недостаточно.
- Прочитайте события с причиной отсутствия размещения.
- Сравните запросы с остатком ресурсов каждого подходящего узла.
- Проверьте метки, ограничения и способ распределения по доменам отказа.
- Разделите жёсткие требования и предпочтения размещения.
- После назначения проверяйте получение образа, среду выполнения и готовность приложения.
- До покупки дополнительного узла докажите, что он устранит именно найденное ограничение.
Первоисточники
Kubernetes Scheduler
Kubernetes · Kubernetes current documentation
Описывает отбор допустимых узлов, оценку вариантов и назначение узла для ещё не размещённого Pod.
Открыть первоисточникKubernetes Components
Kubernetes · Kubernetes current documentation
Описывает управляющие компоненты, узлы, сервер API, планировщик, контроллеры, kubelet и среду выполнения контейнеров.
Открыть первоисточникLiveness, Readiness, and Startup Probes
Kubernetes · Kubernetes current documentation
Разделяет проверки готовности, работоспособности и запуска. Объясняет их действия и риск каскадного отказа при неверной настройке.
Открыть первоисточникResource Management for Pods and Containers
Kubernetes · Kubernetes current documentation
Разделяет запросы и ограничения CPU и памяти: их учёт при размещении, распределение процессорного времени и применение пределов на узле.
Открыть первоисточникPod Topology Spread Constraints
Kubernetes · документация Kubernetes v1.37, страница открыта 6 сентября 2026 года
Открыт редактором 6 сентября 2026 года, заголовок и версия документа сверены. Распределение Pod по меткам узлов и доменам отказа; жёсткое и мягкое требование.
Открыть первоисточникPod Lifecycle
Kubernetes · Kubernetes current documentation
Описывает назначение узла, состояния Pod и контейнеров, перезапуски контейнеров и создание нового Pod с другим UID взамен прежнего.
Открыть первоисточникOpen Container Initiative Runtime Specification
Open Container Initiative · OCI Runtime Specification, November 2025
Определяет подготовленный пакет контейнера, config.json, окружение процесса и операции жизненного цикла.
Открыть первоисточник