Поскейлить автомасштабируемую группу узлов в 0 не выйдет
В отличие от фиксированной группы.
С даунскейлом нод группы действительно могут возникать проблемы. Это происходит в случае когда на всех нодах автомасштабируемой группы находятся системные поды, которые не могут эвакуироваться с неё. Такое поведение может наблюдаться с подами CoreDNS, которые управляются PDB. Или некоторыми компонентами CNI, у которых есть хранилище emptydir.
Если в кластере есть одна автомасштабируемая нод группа, то такую группу поскейлить в 0 не получится. Так как этому будут препятствовать системные поды. Которые будут хотеть приземлиться на ноду. А контроллер будет заботливо эту ноду создавать. Поэтому всегда будет минимум одна нода.
В тоже время, если создать фиксированную группу, то такую группу можно поскейлить в 0. Так как вы сами управляете числом нод в группе, а не контроллер.
Это можно сделать с помощью команды:
yc k8s node-group update <id_node_group> --fixed-size=0
Также стоит учесть, что самостоятельно системные поды не уедут с ноды, если её не задрейнить. Для этого поможет команда:
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data --force
Но если в кластере несколько нод групп из которых одна масштабируемая, то такую группу поскейлить в 0 можно. В этом случае системные поды можно эвакуировать на нод группу с фиксированным числом нод.
Поэтому, если необходимо иметь возможность скейлить одну или несколько масштабируемых нод групп в ноль, то при их создании необходимо выбрать минимально количество ВМ в группе - ноль. Также иметь группу, можно с минимальной конфигурацией, куда системные поды будут эвакуироваться в случае дрейна нод из масштабируемой группы.