Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Экземпляры WCS на Google Cloud Platform поддерживают балансировку нагрузки при помощи TCP Network Load Balancer.

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

Для настройки необходимо создать следующие компоненты

  • Образ диска, который будет использоваться в шаблоне при создании нового экземпляра
  • Шаблон, на основе которого будут создаваться новые экземпляры сервера при масштабировании
  • Группа масштабирования
  • Балансировщик нагрузки
  • Настройки контроля активности сервера

Рассмотрим пример развертывания CDN для доставки WebRTC потоков, состоящей из одного Origin и группы масштабирования Edge (от 1 до 3 экземпляров) с масштабированием по загрузке процессора.

...

1. Разверните Origin и Edge серверы, как описано здесь. Назначьте Origin серверу статический внутренний IP адрес. Зарезервируйте статический внешний IP адрес для балансировщика.

2. Настройте CDN на стороне Origin сервера

...

Code Block
themeRDark
http_enable_root_redirect=false

5. Подготовьте и импортируйте SSL сертификаты на Origin и Edge серверы. Не рекомендуется использовать Let'sEncrypt, поскольку это приведет к необходимости обновлять образ диска Edge сервера каждые три месяца.

Создание образа диска Edge сервера

...

2. Перейдите в раздел "Compute Engine - Images", нажмите "Create image". Выберите в качестве диска-источника диск экземпляра Edge сервера и нажмите Create

После создания образа диска не удаляйте исходный экземпляр Edge сервера, он потребуется при изменении настроек.

Создание шаблона Edge сервера

...

4. Разверните пункт "Advanced creation options" и установите переключатель "Do not retry machine creation", затем нажмите "Create"

Image Added

Группа масштабирования будет создана, и один экземпляр будет запущен

Image Added

Создание балансировщика нагрузки

1. Перейдите в раздел "Network – Load balancers" и нажмите "Create load balancer". Выберите "TCP Load Balancing"

Image Added

2. Выберите внешний балансировщик "From internet to my VMs" и регион расположения балансировщика

Image Added

3. В разделе "Backend configuration", на вкладке "Select existing instance groups" выберите группу масштабирования Edge серверов и укажите привязку сессии к IP и протоколу клиента

Image Added

4. Выберите "Create health check". Создайте настройку проверки сервера, укажите порт 8081 и запрос /

Image Added

5. В разделе "Frontend configuration" создайте конфигурации для TCP портов 8081, 8080, 8443, 8444 для HTTP(S) и WS(S). Укажите статический внешний IP адрес для балансировщика

Image Added

Image Added

Вы можете добавить другие необходимые порты (1935 для RTMP подписчиков, 8082, 8445 для HLS и т.д в зависимости от сценария использования Edge серверов)

6. Нажмите "Create". Балансировщик нагрузки запустится

Image Added

Тестирование балансировщика нагрузки

1. Войдите в веб интерфейс Origin сервера, опубликуйте поток test в примере Two Way Streaming

2. Войдите в веб-интерфейс Edge сервера, используя IP адрес балансировщика нагрузки. Проиграйте поток test в примере Player

Image Added

Изменение настроек Edge серверов

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

1. Отключите масштабирование и удалите все экземпляры Edge серверов в группе

2. Запустите исходных экземпляр Edge сервера

3. Внесите необходимые изменения в настройки (например. обновите SSL сертификаты)

4. Остановите исходный экземпляр Edge сервера

5. Удалите образ диска Edge сервера

6. Создайте новый образ диска Edge сервера с тем же именем образа (например test-edge-image-1)

7. Включите масштабирование в группе (настройки масштабирования при этом сохранятся)