Автоматическое масштабирование группы нод до нуля позволяет экономить ресурсы, когда они не используются. Это удобно для разовых задач — например, Job — или стейдж-окружений, которые неактивны ночью.
Масштабирование до нуля нод — это частный случай автомасштабирования. Поэтому принципы работы, ограничения и требования, описанные для обычного автомасштабирования, действуют и здесь.
Требования
Чтобы масштабирование до нуля работало, в кластере должна быть еще хотя бы одна группа с 1–2 постоянно активными нодами. Эти ноды нужны для системных компонентов Kubernetes
Настройка подов
Чтобы автоскейлер мог запускать ноды в нужной группе, укажите ID этой группы в манифесте через nodeSelector или nodeAffinity.
Как найти ID группы
- Перейдите в панель управления кластером.
- Откройте вкладку «Ресурсы».
- Нажмите на три точки рядом с нужной группой и выберите «Редактировать группу».

-
ID группы будет указан в URL, например:
Здесь:
1048329— ID кластера,54289— ID группы узлов.
Пример с nodeSelector:
Пример с nodeAffinity:
Когда масштабирование до нуля не сработает
Автоскейлер не сможет удалить последнюю ноду в группе в следующих случаях:
- У пода установлена аннотация:
cluster-autoscaler.kubernetes.io/safe-to-evict: "false" - Поды нельзя переместить на другие узлы из-за ограничений планировщика.
- Есть
PodDisruptionBudget, который не позволяет удалить поды без превышения лимита. - Под не управляется контроллером (
Deployment,StatefulSet,Job,ReplicaSet).
Практический пример
В этом примере создадим группу узлов с включенным масштабированием до нуля, запустим в ней Job и посмотрим, как кластер автоматически создаст ноду для выполнения задачи и удалит ее после завершения.
Предварительные требования
Существующий кластер Kubernetes хотя бы с одной группой нод.
Создание группы нод с масштабированием до нуля
- Перейдите во вкладку «Ресурсы» в панели управления.
- Нажмите «Добавить группу».
- Выберите конфигурацию воркер-нод.
- Включите переключатель «Автомасштабирование» и установите минимальное количество нод равным 0.

После создания группы появится одна нода, которая будет автоматически удалена, если на ней не запущены пользовательские поды.
Теперь в кластере есть две группы:
- группа с активными нодами, которые не масштабируются в 0;
- группа с включенным масштабированием до 0. В нашем примере ее ID —
54289.

Проверка существующих нод
Выполните команду:
Пример вывода:
Создание Job
Создайте файл job.yaml со следующим содержимым:
Это задание запускает контейнер с образом busybox, который выводит сообщение в лог 10 раз с интервалом 30 секунд.
Обратите внимание: в секции nodeSelector указан ID группы нод (54289).
Примените манифест:
Проверьте список подов:
Пример вывода:
Под находится в статусе Pending, так как в группе пока нет нод. Перейдите в раздел «Ресурсы» панели управления. Вы увидите, что началось создание ноды в группе с автомасштабированием.

После ее создания проверьте список нод:
Пример вывода:
worker-192.168.0.6 — это новая нода, созданная для Job.
Проверьте под снова:
Пример вывода:
Теперь под запущен.
Завершение задания и удаление ноды
После выполнения Job на ноду, где она запускалась, будет установлен тейнт. Посмотрите его командой:
Найдите строку:
Это означает, что нода помечена на удаление. Через 2 минуты после установки тейнта она будет удалена.
Проверьте это: