Kubernetes v1.37: Прерывание п... Заметка
Kubernetes Blog на русском

Kubernetes v1.37: Прерывание планировщика для изменения размера пода на месте (Альфа)

В Kubernetes v1.35 было представлено изменение размера Pod "на месте" (in-place), позволяющее динамически регулировать CPU и память без перезапуска. Однако увеличение размера Pod на полностью загруженном узле могло привести к статусу "Отложено" (Deferred) при недостатке ресурсов. Это означало, что Pod бесконечно ожидал освобождения ресурсов. Для решения этой проблемы в Kubernetes v1.37 представлена функция предварительного вытеснения (preemption) планировщиком для изменения размера Pod "на месте", которая в настоящее время находится в стадии Alpha. Эта функция позволяет планировщику Kubernetes проактивно освобождать ресурсы узла. Если запрос на изменение размера Pod "на месте" превышает доступные ресурсы, планировщик может вытеснить Podы с более низким приоритетом. Это гарантирует, что критически важные приложения смогут масштабироваться даже на загруженных узлах. Вытеснение локализовано для текущего узла Podа, нацеливаясь на подходящие рабочие нагрузки с более низким приоритетом. Это позволяет операторам кластера максимально эффективно использовать ресурсы, упаковывая задачи с низким приоритетом. Без этой функции операторы сталкивались с дилеммой между недоиспользованием ресурсов или риском сбоя масштабирования критически важных приложений. Функция интегрируется с существующими механизмами отслеживания планировщика. Она отличает вытеснение для изменения размера от стандартного вытеснения при размещении Podа. Резервирование ресурсов обрабатывается безопасно для предотвращения состояний гонки во время изменения размера. Для использования этой функции требуется Kubernetes v1.37 или более поздняя версия, а также включенный флаг функции InPlacePodVerticalScalingSchedulerPreemption. Администраторы могут отключить вытеснение для изменения размера на определенных узлах, используя поле podPreemptionPolicy.