Исходный клиент не может подключиться к бессерверному серверу Icecast в Cloud Run

Можно ли сделать сервер Icecast без сервера?

Я пытаюсь создать интернет-радио с помощью Icecast на бессерверной платформе Google Cloud Run. Я поместил этот образ докера в реестр контейнеров, а затем создал службу Cloud Run с порт Icecast по умолчанию 8000. Кажется, все работает при посещении URL-адреса, предоставленного Cloud Run. С его помощью я могу попасть на страницу Icecast и админку по умолчанию.

Проблема заключается в попытке подключиться к серверу с исходным клиентом (пытался использовать mixxx и butt). Я думаю, что проблема связана с портами, поскольку установка порта на 8000 на mixxx дает: Socket is busy ошибка, в то время как стык просто не подключается. Установка порта на 443 на mixxx дает: Ошибка сокета, в то время как стык: connect: сервер ответил с 411!

Пытался сделать то же самое с Compute Engine, но просто установил Icecast, а не образ докера, и все работает как задумано. Насколько я понимаю, Cloud Run предоставляет URL-адрес контейнера (https://example.app) с заданным портом при настройке ( для Icecast 8000), но исходный клиент пытается подключиться к этому URL через предоставленный порт (http://example.app:SOURCE_CLIENT_PORT < / а>). Поэтому не уверен, есть ли проблема с HTTPS или просто нужно настроить порты по-другому.


person Simas Tautvaišas    schedule 15.12.2020    source источник


Ответы (1)


С Cloud Run вы можете открыть только 1 порт извне. По умолчанию это порт 8080, но вы можете переопределить этот при развертывании своей версии..

Этот порт находится за передним уровнем инфраструктуры Google Cloud, который называется Google Front End, и предоставляется через DNS (* .run.app) на порту 443 (HTTPS).

Таким образом, вы можете получить доступ к своей службе только через открытый порт через обертку порта 443. Любой другой порт выйдет из строя.

С Compute Engine у ​​вас нет этого ограничения, и поэтому у вас нет проблем. Просто откройте правильный порт с помощью правил брандмауэра и наслаждайтесь.

person guillaume blaquiere    schedule 15.12.2020
comment
Итак, просто из любопытства, можно ли сделать сервер Icecast без сервера? Не обязательно на облачной платформе Google, но в целом, является ли это ограничением контейнеров и делают ли другие облачные провайдеры что-то подобное? - person Simas Tautvaišas; 16.12.2020
comment
Я не знаю Icecast. Можете ли вы поделиться частью своей конфигурации? - person guillaume blaquiere; 16.12.2020
comment
Образ докера, работающий в Cloud Run, имеет this icecast.xml, а при развертывании контейнера порт по умолчанию изменено на 8000. Вот основы подключения к серверу через исходный клиент. На mixxx (исходный клиент) я поместил предоставленный Cloud Run URL-адрес и пробовал все виды портов. Не знаю, нужна ли вам эта информация - person Simas Tautvaišas; 16.12.2020