- Быстрый старт
- Управление доступом
- Концепции
- Конфигурация рабочих узлов
- Шифрование etcd в Managed Kubernetes
- Ручное обновление кластера
- Политика обновления группы узлов
- Особенности обновления и удаления рабочих узлов
- Резервирование ресурсов и планирование размера рабочих узлов
- Поддержка Container Storage Interface
- Сетевые политики по умолчанию
- Автоматическое масштабирование группы узлов
- Горизонтальное масштабирование подов
- Вертикальное масштабирование подов
- Мониторинг кластера
- Аудит-логирование в Managed Kubernetes
- Группы узлов с графическим процессором GPU
- Тарификация
- Термины и сокращения
- Обратиться в поддержку
Автоматическое масштабирование группы узлов
Managed Kubernetes поддерживает автоматическое масштабирование группы узлов в кластере (Cluster Autoscaler, CA). Сервис наблюдает за состоянием подов и нагрузкой на рабочие узлы и добавляет или удаляет узлы на основе запрошенных ресурсов.
Автоматическое увеличение количества узлов обеспечивает высокую доступность и производительность приложений, расширяя кластер Managed Kubernetes в соответствии с текущей загрузкой и ограничениями.
Автоматическое уменьшение количества узлов позволяет оптимизировать использование ресурсов и снизить затраты.
Параметры автомасштабирования
Автомасштабирование группы узлов выполняется в пределах заданных значений — минимального и максимального количества узлов.
Включить автоматическое масштабирование и указать минимальное и максимальное количество узлов можно при создании или редактировании группы узлов.
Параметры автомасштабирования можно изменить. При этом нужно учитывать ограничения, описанные в таблице.
Количество рабочих узлов в группе |
Cluster Autoscaler |
Поведение |
---|---|---|
Ниже, чем минимальное количество узлов, которое хотим указать. |
Увеличивает количество узлов до нового значения минимального количества узлов. |
Группа узлов не будет масштабироваться ниже указанного значения. |
В пределах указываемого минимального и максимального размера. |
Уменьшает или увеличивает количество узлов в зависимости от спроса. |
Размер группы узлов будет масштабироваться в указанных пределах. |
Выше, чем максимальное количество узлов, которое хотим указать. |
Уменьшает количество узлов до нового значения максимального количества узлов. |
Группа узлов не будет масштабироваться выше указанного значения. |
Масштабирование до нуля и из нуля
Managed Kubernetes поддерживает автоматическое масштабирование группы узлов до нуля и из нуля.
Если в кластере одна группа узлов, то масштабирование до нуля работать не будет, так как часть системной нагрузки всегда будет требовать минимум один рабочий узел.
При масштабировании из нуля реплик есть ограничения на использование меток в nodeSelector или affinity, так как AutoScaler имеет ограниченный набор информации об узле из группы узлов.
Managed Kubernetes поддерживает метки topology.kubernetes.io/zone и mk8s.cloud.ru/node-pool-id.
Увеличение количества узлов
Если рабочие узлы в кластере не могут обеспечить достаточное количество ресурсов для запуска новых подов, функция автоматического масштабирования кластера добавляет новые узлы. Количество узлов не может увеличиваться выше указанного максимального количества.
Ниже показано автоматическое увеличение количества узлов.
Как работает:
Под ожидает распределения на рабочий узел, но его вычислительная мощность достигнута.
Запрошено предоставление нового узла.
Как только новый рабочий узел развернут и обнаружен плоскостью управления, планировщик распределит ожидающий под на этот узел.
Уменьшение количества узлов
При автомасштабировании в Managed Kubernetes происходит удаление узла, если выполняются условия:
использование ресурсов узла в течение 10 минут ниже порогового значения в 50%;
все поды могут быть перемещены на другой узел;
не достигнут порог минимального числа узлов.
Ниже показано автоматическое уменьшение количества узлов.
Как работает:
На втором узле развернут один под.
Использование ресурсов на этом узле ниже 50%.
Под можно переместить на первый узел.
Если количество рабочих узлов больше заданного пользователем минимального, второй узел удаляется.
Ограничения и особенности
Некоторые типы подов могут запретить удаление узла при масштабировании вниз. Например:
Поды с ограничением PodDisruptionBudget, если удаление узла превысило бы указанное значение.
Для пода установлена аннотация cluster-autoscaler.kubernetes.io/safe-to-evict": "false".
Поды, которые нельзя переместить в другое место из-за ограничений планировщика.
Поды не управляются Deployment, StatefulSet, Job или ReplicaSet.
Подробнее об особенностях и ограничениях читайте в разделе Frequently Asked Questions документации Kubernetes Autoscaler.
Пример
Создание группы узлов с автоматическим масштабированием, изменение политики масштабирования и обновление параметров автомасштабирования описано в сценарии Настройка автомасштабирования группы узлов.