Основные понятия масштабируемости кластера

Завершено

Нехватка узлов

spec.containers.resources В ключе yamL-файла pod определяется количество ресурсов, необходимых модулем pod. После создания нового модуля pod на узле Kubernetes автоматически выделяет указанное количество ресурсов для модуля pod, чтобы оно выполнялось с нужным объемом энергии.

Один узел — это одна виртуальная машина, которая имеет ограниченный объем ресурсов, доступных для модулей pod, таких как ЦП и ОЗУ. Вы не можете создать бесконечное количество модулей pod в узле. Если узел не соответствует необходимым требованиям к ресурсу pod, модуль pod конкурирует с указанными ресурсами для ресурсов узла, что приводит к нехватке узлов. Модуль pod остается в состоянии ожидания и не планируется на узлы до тех пор, пока не будет доступно достаточно ресурсов.

Масштабируемость кластера

Чтобы избежать нехватки узлов, оператор должен масштабировать кластер и добавлять дополнительные виртуальные машины в пул узлов. Масштабирование кластера можно выполнять вручную с помощью команды Azure CLIaz aks scale. Вы также можете использовать портал Azure для ручного масштабирования кластера. Войдите на портал и выберите кластер Служба Azure Kubernetes (AKS). В разделе "Параметры" выберите пулы узлов. Выберите пул узлов, который требуется масштабировать, и выберите пул узлов масштабирования.

Масштабирование вручную может быть подавляющим, особенно для кластеров с несогласованным и изменяющимся спросом. Когда количество модулей pod постоянно изменяется, необходимо постоянно отслеживать его для незапланированных модулей pod и вносить необходимые изменения в режиме реального времени.

Средство автомасштабирования кластера

В AKS средство автомасштабирования кластера автоматизирует процесс масштабирования кластера. Если включить его в кластере AKS, он проверяет наличие незапланированных модулей pod с ограничениями ресурсов и автоматически увеличивает количество узлов в соответствии с требованиями.

Схема, на которой показано, как работает средство автомасштабирования кластера.

Средство автомасштабирования кластера также может уменьшить количество узлов в кластере, если в течение указанного времени неиспользуемая емкость кластера. При выполнении этого условия автомасштабирование (делает узел недоступным для планирования новых рабочих нагрузок) и сливов (перемещает существующие рабочие нагрузки на другой узел) узел. В результате все модули pod, запланированные в этом узле, безопасно перемещаются на другие узлы. Он также гарантирует, что во время процесса другие модули pod не запланированы. Затем он удаляет узел из пула.

Существуют некоторые ситуации, когда автомасштабирование кластера не может удалить узел из-за модулей pod, которые не могут быть перемещены из этого узла. К таким ситуациям относятся:

  • Модуль pod создается непосредственно с файлом YAML и не привязан к каким-либо контроллерам, таким как развертывания или реплики.
  • Бюджет прерывания pod (PDB) слишком строгий и не позволяет падать ниже определенного порогового значения.
  • В модуле pod есть селектор узлов для этого конкретного узла или сходство узлов, которое предотвращает его переход в другое место.

Если автомасштабирование включено, масштабирование кластера вручную отключено.

Проверьте свои знания

1.

Как автомасштабирование кластера отличается от HPA?

2.

Почему автомасштабирование кластера необходимо в рабочей среде?

3.

В каких из этих ситуаций кластер не удается удалить узел?