Автоскейлер реагирует на ситуацию, когда планировщик Kubernetes не может разместить поды и они остаются в
Pending. Тогда Cluster Autoscaler проверяет, поможет ли добавление нового узла в одну из групп.🧮 При расчете он смотрит на
resources.requests: сколько CPU и памяти запросили поды, а не сколько ресурсов они потребляют прямо сейчас. Поэтому поды без корректно заданных requests могут не создать повода для масштабирования, даже если нагрузка на существующие узлы высокая.⤵️ В обратную сторону работает похожая логика. Если нагрузка снизилась и поды можно разместить на меньшем числе узлов, автоскейлер расселяет недозагруженный узел и после периода простоя удаляет его. В Managed Containers от VK Cloud пустой узел должен оставаться таким пять минут.
При этом группа может не вырасти, даже если поды остаются в
Pending. Например, если достигнут заданный максимум узлов, закончились квоты или требования nodeSelector, nodeAffinity и tolerations не позволяют разместить под на новом узле.📃 В статье разобрали, как Cluster Autoscaler принимает решения о росте и сжатии группы, как выбирает узлы и с чего начинать диагностику, если автомасштабирование не сработало.
Читать статью →
📬 Мы в MAX
