Дополнение CCE Cluster Autoscaler построено на компоненте Autoscaler сообщества. Оно может автоматически регулировать количество узлов кластера в зависимости от потребностей приложений в ресурсах, оптимизируя использование ресурсов и производительность. Autoscaler является основным контроллером в Kubernetes. Он может автоматически масштабировать узлы вверх или вниз в соответствии с требованиями к ресурсам. Когда ресурсов узлов недостаточно для размещения pod‑ов в кластере, Autoscaler добавляет дополнительные узлы с необходимыми ресурсами для этих pod‑ов. Кроме того, если использование ресурсов добавленных узлов низкое, Autoscaler автоматически удалит их. Для получения подробной информации о реализации автоматического масштабирования узлов см. Creating a Node Auto Scaling Policy.
Сообщество с открытым исходным кодом: https://github.com/kubernetes/autoscaler
CCE Cluster Autoscaler управляет автоматическим масштабированием наружу и внутрь.
Вы можете выбрать любой из следующих методов: Автоматическое масштабирование наружу будет выполнено, когда: Дополнение следует политике «No Less, No More». Например, если для создания pod требуется три ядра, а система поддерживает узлы с четырьмя и восемью ядрами, Autoscaler предпочтительно создаст узел с четырьмя ядрами.
Если предварительно выделенные CPU и память узла остаются ниже порога scale-in в течение продолжительного периода (по умолчанию 10 минут), кластер инициирует операцию scale-in, автоматически удаляя недостаточно используемый узел. Однако узел нельзя удалить из кластера, если существуют следующие pods:
Существует три типа preset specifications в зависимости от масштаба кластера. Вы можете выбрать один по требованию. Система настроит количество pod'ов и квоты ресурсов для add-on на основе выбранных preset specifications. Вы можете просмотреть конфигурации в консоли.
Если ваш кластер большой и preset specifications не удовлетворяют вашим требованиям, вы можете настроить спецификации ресурсов и оценить количество pod'ов в кластере, чтобы точнее определить использование памяти add-on. Рекомендуемые запрос и лимит памяти в типичных крупных кластерах можно вычислить следующим образом:
Например, при 20 000 pod'ов и размере YAML‑файла каждого pod'а 10 KB запрос памяти составит 6,6 GiB (2 × 10 × 0.28 GiB + 1 GiB), а лимит памяти — 8,6 GiB (6.6 GiB + 2 GiB). (Вычисленные значения могут отличаться от рекомендаций, указанных в Table 1. Вы можете обратиться к этой таблице или использовать эти формулы.)
Количество pod'ов (10 KB для каждого YAML‑файла pod'а) | Рекомендуемый запрос памяти | Рекомендуемый лимит памяти |
|---|---|---|
10000 | 4 GiB | 6 GiB |
30000 | 8 GiB | 10 GiB |
50000 | 16 GiB | 18 GiB |
80000 | 24 GiB | 26 GiB |
100000 | 28 GiB | 30 GiB |
Параметр | Описание |
|---|---|
Multi-AZ Deployment |
|
Node Affinity |
|
Toleration | Использование как taints, так и tolerations позволяет (но не требует) планировать pods Deployment дополнения на узлы с соответствующими taints и дает возможность управлять политиками выселения pod'ов, когда узлы‑хосты помечены taints. Дополнение применяет tolerations по умолчанию для taint node.kubernetes.io/not-ready и taint node.kubernetes.io/unreachable. Временное окно toleration составляет 60 секунд. Для получения подробной информации см. Configuring Tolerance Policies. |
Компонент | Описание | Тип ресурса |
|---|---|---|
Autoscaler | Автоматическое масштабирование для кластеров Kubernetes | Deployment |