Дополнение CCE Cluster Autoscaler построено на компоненте Autoscaler сообщества. Оно может автоматически регулировать количество узлов кластера в зависимости от потребностей приложений в ресурсах, оптимизируя использование ресурсов и производительность. Autoscaler является основным контроллером в Kubernetes. Он может автоматически масштабировать узлы вверх или вниз в соответствии с требованиями к ресурсам. Когда в кластере недостаточно ресурсов узлов для размещения pod‑ов, Autoscaler добавляет дополнительные узлы с необходимыми ресурсами для этих pod‑ов. Кроме того, если использование ресурсов добавленных узлов низкое, Autoscaler автоматически удалит их. Подробную информацию о реализации автоматического масштабирования узлов см. Creating a Node Auto Scaling Policy.
сообщество с открытым исходным кодом: https://github.com/kubernetes/autoscaler
CCE Cluster Autoscaler управляет auto scale-out и scale-in.
Вы можете выбрать любой из следующих методов: Auto scale-out будет выполнено, когда: Дополнение следует политике «No Less, No More». Например, если для создания pod‑а требуется три ядра, а система поддерживает узлы с четырьмя и восемью ядрами, Autoscaler предпочтительно создаст узел с четырьмя ядрами.
Если предварительно выделенные CPU и память узла остаются ниже порога масштабирования вниз в течение продолжительного периода (по умолчанию 10 минут), кластер инициирует операцию масштабирования вниз, автоматически удаляя недостаточно используемый узел. Однако узел нельзя удалить из кластера, если существуют следующие Pods:
Существует три типа preset specifications в зависимости от масштаба кластера. Вы можете выбрать один по требованию. Система настроит количество pod'ов и квоты ресурсов для дополнения на основе выбранных preset specifications. Вы можете просмотреть конфигурации в консоли.
Если ваш кластер крупный и preset specifications не удовлетворяют вашим требованиям, вы можете настроить пользовательские спецификации ресурсов и оценить количество pod'ов в кластере, чтобы точнее определить использование памяти дополнением. Рекомендуемые запрос и лимит памяти в типичных крупномасштабных кластерах можно вычислить следующим образом:
Например, если в кластере 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 |
|
Node Affinity |
|
Toleration | Использование как taints, так и tolerations позволяет (не принудительно) планировать поды развертывания дополнения на узел с соответствующими taints и может управлять политиками выселения подов после пометки узлов taints. Дополнение добавляет политику toleration по умолчанию для taint node.kubernetes.io/not-ready и taint node.kubernetes.io/unreachable соответственно. Временное окно toleration составляет 60s. Для получения подробной информации см. Configuring Tolerance Policies. |
Компонент | Описание | Тип ресурса |
|---|---|---|
Autoscaler | Автоматическое масштабирование для кластеров Kubernetes | Развертывание |