Настройка балансировки нагрузки с масштабированием в GCP¶
Описание¶
Экземпляры WCS на Google Cloud Platform поддерживают балансировку нагрузки при помощи TCP Network Load Balancer.
При этом WebSocket-соединения будут автоматически распределены между активными серверами в балансировщике нагрузки. В случае применения заданной политики масштабирования (если целевой показатель, например, загрузка процессора на сервере, достиг заданного значения) будут запущены новые экземпляры сервера и автоматически добавлены в балансировщик.
Для настройки необходимо создать следующие компоненты
- Образ диска, который будет использоваться в шаблоне при создании нового экземпляра
- Шаблон, на основе которого будут создаваться новые экземпляры сервера при масштабировании
- Группа масштабирования
- Балансировщик нагрузки
- Настройки контроля активности сервера
Рассмотрим пример развертывания CDN для доставки WebRTC потоков, состоящей из одного Origin и группы масштабирования Edge (от 1 до 3 экземпляров) с масштабированием по загрузке процессора.
Подготовка серверов¶
-
Разверните Origin и Edge серверы, как описано здесь. Назначьте Origin серверу статический внутренний IP адрес. Зарезервируйте статический внешний IP адрес для балансировщика.
-
Настройте CDN на стороне Origin сервера
-
Настройте CDN на стороне Edge сервера
-
В настройке Edge сервера укажите параметр
-
Подготовьте и импортируйте SSL сертификаты на Origin и Edge серверы. Не рекомендуется использовать Let'sEncrypt, поскольку это приведет к необходимости обновлять образ диска Edge сервера каждые три месяца.
Создание образа диска Edge сервера¶
-
Остановите экземпляр Edge сервера
-
Перейдите в раздел
Compute Engine
-Images
, нажмитеCreate image
. Выберите в качестве диска-источника диск экземпляра Edge сервера и нажмитеCreate
После создания образа диска не удаляйте исходный экземпляр Edge сервера, он потребуется при изменении настроек.
Создание шаблона Edge сервера¶
-
Перейдите в раздел
Compute Engine
-Instance templates
, нажмитеCreate image
. Выберите конфигурацию ВМ
-
В разделе
Boot disk
нажмитеChange
На вкладкеCustom images
выберите образ диска Edge сервера
-
На вкладке
Security
добавьте публичный ключ для доступа к серверу по SSH, если у Вас нет ключей, привязанных к проекту, и нажмитеCreate
Создание группы масштабирования¶
-
Перейдите в раздел
Compute Engine
-Instance groups
, нажмитеCreate instance group
. Выберите регион и зону расположения группы, укажите шаблон Edge сервера
-
Выберите режим
Autoscale
по метрикеCPU utilization
, укажите целевую величину80%
и максимальное количество экземпляров3
-
Включите проверку состояния ВМ (Auto healing) и создайте настройку проверки сервера. Укажите протокол TCP, порт
8081
и запрос/health-check
Настройте критерии проверки и нажмитеCreate
для возврата к редактированию группы
-
Разверните пункт
Advanced creation options
и установите переключательDo not retry machine creation
, затем нажмитеCreate
Группа масштабирования будет создана, и один экземпляр будет запущен
Создание балансировщика нагрузки¶
-
Перейдите в раздел
Network
–Load balancers
и нажмитеCreate load balancer
. ВыберитеTCP Load Balancing
-
Выберите внешний балансировщик
From internet to my VMs
и регион расположения балансировщика
-
В разделе
Backend configuration
, на вкладкеSelect existing instance groups
выберите группу масштабирования Edge серверов и укажите привязку сессии к IP и протоколу клиента
-
Выберите
Create health check
. Создайте настройку проверки сервера, укажите порт8081
и запрос/
-
В разделе
Frontend configuration
создайте конфигурации для TCP портов8081
,8080
,8443
,8444
для HTTP(S) и WS(S). Укажите статический внешний IP адрес для балансировщика
Вы можете добавить другие необходимые порты (1935
для RTMP подписчиков,8082
,8445
для HLS и т.д в зависимости от сценария использования Edge серверов) -
Нажмите
Create
. Балансировщик нагрузки запустится
Тестирование балансировщика нагрузки¶
-
Войдите в веб интерфейс Origin сервера, опубликуйте поток
test
в примере Two Way Streaming -
Войдите в веб-интерфейс Edge сервера, используя IP адрес балансировщика нагрузки. Проиграйте поток
test
в примере Player
Изменение настроек Edge серверов¶
Для того, чтобы изменить настройки Edge серверов в группе масштабирования, например, обновить SSL сертификаты, необходимо обновить образ диска Edge сервера следующим образом:
-
Отключите масштабирование и удалите все экземпляры Edge серверов в группе
-
Запустите исходных экземпляр Edge сервера
-
Внесите необходимые изменения в настройки (например, обновите SSL сертификаты)
-
Остановите исходный экземпляр Edge сервера
-
Удалите образ диска Edge сервера
-
Создайте новый образ диска Edge сервера с тем же именем образа (например
test-edge-image-1
) -
Включите масштабирование в группе (настройки масштабирования при этом сохранятся)