Kubernetes LoadBalancer: открыть широкий диапазон (тысячи) портов - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь настроить кластер (GKE, но при необходимости могу поменять на других провайдеров) сервера AntMedia.

Согласно do c 1 , сервер должен быть доступен извне с широким диапазоном портов, в основном со всеми портами UDP: UDP: 5000-65000 (WebRT C)

Я попытался объявить все порты в службе LoadBalancer, но Похоже, что GKE позволяет использовать максимум 100 портов для каждой службы.

Что я могу сделать, чтобы выставить этот диапазон портов для внешнего мира?

Ответы [ 2 ]

4 голосов
/ 12 апреля 2020
Программное обеспечение

WebRT C обычно не предназначено для балансировки нагрузки. Вы можете использовать публичные c экземпляры виртуальных машин и балансировку нагрузки на уровне приложений вместо балансировки нагрузки в облаке.

Возможный действительно дорогостоящий обходной путь - создать множество служб LoadBalancer с одинаковым IP:

spec:
  loadBalancerIP: <Your_LB_IP>

Только не забудьте создать зарезервированный IP-адрес c до всех LB

gcloud compute addresses create antmedia-lb --global --project=$PROJECT_ID

. Возможно, вы можете настроить ограничение диапазона портов UDP на 200 или 300 портов вместо 60000 в настройках AntMedia и использовать 2- 3 фунта, чтобы увидеть, как это происходит.

1 голос
/ 14 апреля 2020

Ответ Алекса имеет некоторую проницательность, но даже при том, что невозможно создать много LB-сервисов, потому что количество портов NodePort ограничено (да, LB нужен NodePort для работы или, по крайней мере, так говорит GKE)

Решение до сих пор состоит в том, чтобы использовать DaemonSet, включить hostNetworking, чтобы (только один контейнер на модуль) мог прослушивать напрямую через сетевой интерфейс хоста.

Оттуда мы можем создать внешний LB при необходимости перенаправить все порты на узлы.

...