Контейнеры и оркестрация · проверено по источникам

Планировщик Kubernetes

Планировщик Kubernetes — компонент, который выбирает узел для ещё не размещённого Pod. Он отбирает допустимые узлы по ресурсам и ограничениям, оценивает оставшиеся варианты и записывает назначение. Контейнеры затем запускают службы выбранного узла.

Также ищут: kube-scheduler · Pod scheduler · Kubernetes scheduler

Практический смысл

Почему это важно

Когда Pod не размещается, сумма свободных ресурсов кластера может вводить в заблуждение. Проверьте запросы, доступное место и требования к каждому узлу. Добавление сервера поможет только тогда, когда новый узел подходит всем обязательным условиям.

Доказательная часть

Что подтверждено

  1. Планировщик сначала отбирает допустимые узлы по требованиям Pod, затем оценивает варианты и записывает назначение выбранному узлу. Не каждый свободный узел является допустимым.

    Граница применимости: Стандартная модель планирования Kubernetes.

  2. Назначение определяет узел выполнения. Получение образа и запуск контейнеров выполняются позже, а готовность приложения проверяется отдельно.

    Граница применимости: Разделение размещения, узловых компонентов и проверок готовности Kubernetes.

  3. Если ни один узел не удовлетворяет обязательным требованиям, планировщик не выбирает просто «наименее плохой». Pod остаётся без назначения до появления допустимого варианта.

    Граница применимости: Результат отбора узлов Kubernetes; отдельно возможны настроенные механизмы освобождения ресурсов.

  4. Один Pod размещается целиком на одном узле. Свободные CPU и память нескольких узлов нельзя объединить, чтобы вместить Pod, слишком большой для каждого из них.

    Граница применимости: Обычное размещение Pod Kubernetes по запросам ресурсов.

  5. При жёстком ограничении распределения отсутствие подходящего узла оставляет Pod без размещения. Мягкое требование допускает размещение с предпочтением более равномерного распределения. Выбор между ними влияет и на доступность, и на необходимый запас.

    Граница применимости: Ограничения распределения Pod по топологии; режимы DoNotSchedule и ScheduleAnyway.

  6. Фаза Pending включает не только ожидание планировщика, но и подготовку уже назначенного Pod, например получение образов. Для диагноза нужно проверить назначение узла, события и состояние контейнеров.

    Граница применимости: Фазы жизненного цикла Pod Kubernetes.

Граница терминов

Не путать

Среда выполнения контейнеров

Планировщик назначает Pod узлу, среда выполнения запускает контейнер на этом узле. Пока назначения нет, проверяют размещение; после назначения — получение образа, создание окружения и запуск.

Перед спецификацией

Что проверить

  1. Проверьте, назначен ли Pod узлу: одного слова Pending недостаточно.
  2. Прочитайте события с причиной отсутствия размещения.
  3. Сравните запросы с остатком ресурсов каждого подходящего узла.
  4. Проверьте метки, ограничения и способ распределения по доменам отказа.
  5. Разделите жёсткие требования и предпочтения размещения.
  6. После назначения проверяйте получение образа, среду выполнения и готовность приложения.
  7. До покупки дополнительного узла докажите, что он устранит именно найденное ограничение.
Открытые основания

Первоисточники

  • Официальная документация

    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, окружение процесса и операции жизненного цикла.

    Открыть первоисточник
Сообщить об ошибке

Опишите проблему — постараемся исправить как можно скорее.

Спасибо!

Получили ваше сообщение.
Подтвердите действие