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