Настройка балансировки нагрузки с масштабированием в 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) -
Включите масштабирование в группе (настройки масштабирования при этом сохранятся)