Ya Cloud and K8s Autoscaler
Contents
k8s autoscaler в Яндекс облаке работает не так как вы думаетe
Нам интересен параметр skip-nodes-with-local-storage
Note
If true, cluster autoscaler doesn’t delete nodes with pods with local storage, for example, EmptyDir or HostPath
Это означает, что любые сущности использующие в своей работе EmptyDir, а встречается их довольно много, не дадут нодам вашего кластера поскейлиться “вниз”
Возможно, такое поведение оправдано из “коробки”, разработчики автоскейлера оставляют этот параметр именно таким, что бы решение принимал конечный пользователь
- Azure по умолчанию использует
skip-nodes-with-local-storage=fale - Aws использует дефолтный параметр, но оставляет вам возможность изменить его по своему усмотрению
- Yandex Cloud использует все настройки “по умолчанию” и не дает вам возможности хоть как-то на них влиять
Упоминание об этом есть в документации, но вы могли его не заметить…
Important
Если в вашем кластере есть сущности использующие EmptyDir, то ноды будут скейлится только “вверх”
Вариантов решения проблемы несколько:
- Полностью отказаться от автоскейлинга и использовать fixed нодпулы
- Использовать descheduler
fly save =)