Экземпляры WCS на Google Cloud Platform поддерживают балансировку нагрузки при помощи TCP Network Load Balancer.
При этом WebSocket-соединения будут автоматически распределены между активными серверами в балансировщике нагрузки. В случае применения заданной политики масштабирования (если целевой показатель, например, загрузка процессора на сервере, достиг заданного значения) будут запущены новые экземпляры сервера и автоматически добавлены в балансировщик.
Для настройки необходимо создать следующие компоненты
- Образ диска, который будет использоваться в шаблоне при создании нового экземпляра
- Шаблон, на основе которого будут создаваться новые экземпляры сервера при масштабировании
- Группа масштабирования
- Балансировщик нагрузки
- Настройки контроля активности сервера
Рассмотрим пример развертывания CDN для доставки WebRTC потоков, состоящей из одного Origin и группы масштабирования Edge (от 1 до 3 экземпляров) с масштабированием по загрузке процессора.
Подготовка серверов
1. Разверните Origin и Edge серверы, как описано здесь. Назначьте Origin серверу статический внутренний IP адрес.
2. Настройте CDN на стороне Origin сервера
cdn_enabled = true cdn_ip = <origin_internal_ip> cdn_role = origin cdn_nodes_resolve_ip = false
3. Настройте CDN на стороне Edge сервера
cdn_enabled = true cdn_ip = <edge_internal_ip> cdn_point_of_entry = <origin_internal_ip> cdn_role = edge cdn_nodes_resolve_ip = false
4. В настройке Edge сервера укажите параметр
http_enable_root_redirect=false
Создание образа диска Edge сервера
1. Остановите экземпляр Edge сервера
2. Перейдите в раздел "Compute Engine - Images", нажмите "Create image". Выберите в качестве диска-источника диск экземпляра Edge сервера и нажмите Create
Создание шаблона Edge сервера
1. Перейдите в раздел "Compute Engine - Instance templates", нажмите "Create image". Выберите конфигурацию ВМ
2. В разделе "Boot disk" нажмите "Change"
На вкладке "Custom images" выберите образ диска Edge сервера
3. На вкладке "Security" добавьте публичный ключ для доступа к серверу по SSH, если у Вас нет ключей, привязанных к проекту, и нажмите "Create"
Создание группы масштабирования
1. Перейдите в раздел "Compute Engine - Instance groups", нажмите "Create instance group". Выберите регион и зону расположения группы, укажите шаблон Edge сервера
2. Выберите режим "Autoscale" по метрике "CPU utilization", укажите целевую величину 80% и максимальное количество экземпляров 3
3. Включите проверку состояния ВМ (Auto healing) и создайте настройку проверки сервера. Укажите протокол TCP, порт 8081 и запрос /health-check
Настройте критерии проверки и нажмите "Create" для возврата к редактированию группы
4. Разверните пункт "Advanced creation options" и установите переключатель "Do not retry machine creation", затем нажмите "Create"