Как настроить группу управляемых экземпляров и автоматическое масштабирование в Google Cloud Platform

Автоматическое масштабирование помогает автоматически добавлять или удалять вычислительные движки в зависимости от нагрузки. Предварительными условиями для автоматического масштабирования в GCP являются шаблон экземпляра и группа управляемых экземпляров.

Этот вопрос является частью ответа другого вопроса о построении автомасштабируемого и сбалансированного бэкэнда.

Я написал ответ ниже, который содержит шаги для настройки автомасштабирования в GCP.

1 ответ

Решение

Автомасштабирование является функцией группы управляемых экземпляров в GCP. Это помогает обрабатывать очень высокий трафик за счет масштабирования экземпляров и в то же время сокращает количество экземпляров при отсутствии трафика, что экономит много денег.

Для настройки автоматического масштабирования нам понадобится следующее:

  • Шаблон экземпляра
  • Группа управляемых экземпляров
  • Политика автомасштабирования
  • Проверка здоровья

Шаблон экземпляра - это проект, который определяет тип машины, образ, диски однородных экземпляров, которые будут работать в автоматически масштабируемой группе управляемых экземпляров. Я написал шаги для установки шаблона экземпляра здесь.

Группа управляемых экземпляров помогает поддерживать группу однородных экземпляров на основе одного шаблона экземпляра. Принимая шаблон экземпляра в качестве образца-шаблона. Это можно настроить, выполнив следующую команду в gcloud:

gcloud compute instance-groups managed \
create autoscale-managed-instance-group \
--base-instance-name autoscaled-instance \
--size 3 \
--template sample-template \
--region asia-northeast1

Приведенная выше команда создает группу управляемых экземпляров, содержащую 3 вычислительных механизма, расположенных в трех разных зонах в регионе азия-северо-восток1, на основе образца-шаблона.

  • base-instance-name будет базовым именем для всех автоматически создаваемых экземпляров. В дополнение к базовому имени, каждое имя экземпляра будет добавлено уникально сгенерированной случайной строкой.
  • Размер представляет желаемое количество экземпляров в группе. На данный момент 3 экземпляра будут работать постоянно, независимо от объема трафика, генерируемого приложением. Позже его можно автоматически масштабировать, применяя политику к этой группе.
  • регион (мультизона) или одиночная зона: группа управляемых экземпляров может быть настроена либо в области (мультизона), т. е. однородные экземпляры будут равномерно распределены по всем зонам в данном регионе, либо все экземпляры могут быть развернуты в той же зоне в пределах региона. Он также может быть развернут как межрегиональный, который в настоящее время находится в альфа-режиме.

Политика автоматического масштабирования определяет поведение автоматического масштабирования. Автоскалер объединяет данные из экземпляров и сравнивает их с требуемой емкостью, указанной в политике, и определяет действие, которое необходимо предпринять. Существует много политик автоматического масштабирования, таких как:

  • Среднее использование процессора

  • Служба балансировки нагрузки HTTP (количество запросов / сек)

  • Стандартные и пользовательские метрики Stackdriver

  • и многое другое

Теперь, представив автоматическое масштабирование для этой группы управляемых экземпляров, выполните следующую команду в gcloud:

gcloud compute instance-groups managed \
set-autoscaling \
autoscale-managed-instance-group \
--max-num-replicas 6 \
--min-num-replicas 2 \
--target-cpu-utilization 0.60 \
--cool-down-period 120 \
--region asia-northeast1

Приведенная выше команда устанавливает автоскалер на основе загрузки ЦП в диапазоне от 2 (в случае отсутствия трафика) до 6 (в случае интенсивного трафика).

  • Флаг периода охлаждения указывает количество секунд ожидания после запуска экземпляра, прежде чем соответствующий автоскалер начнет собирать информацию с него.
  • Автоскалер может быть связан максимум с 5 различными политиками. В случае нескольких политик Autoscaler рекомендует политику с максимальным числом экземпляров.
  • Интересный факт: когда экземпляр запускается автомасштабатором, он гарантирует, что экземпляр будет работать как минимум 10 минут независимо от трафика. Это сделано потому, что GCP выставляет счета как минимум за десять минут работы вычислительного движка. Он также защищает от случайного вращения и отключения экземпляров.

Рекомендации: с моей точки зрения, лучше создать собственный образ со всем установленным программным обеспечением, чем использовать сценарий запуска. Поскольку время, необходимое для запуска новых экземпляров в группе автоматического масштабирования, должно быть как можно меньше. Это увеличит скорость масштабирования вашего веб-приложения.

Это вторая часть серии из трех статей о создании автомасштабированного и сбалансированного бэкэнда.

Другие вопросы по тегам