У исходного клиента возникли проблемы с подключением к бессерверному серверу Icecast при облачном запуске

#docker #google-cloud-platform #serverless #google-cloud-run #icecast

# #докер #google-облачная платформа #бессерверный #google-запуск в облаке #ледяная каста

Вопрос:

Возможно ли создать бессерверный сервер Icecast?

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

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

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

Ответ №1:

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

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

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

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

Комментарии:

1. Итак, просто из любопытства, можно ли создать бессерверный сервер Icecast? Не обязательно на облачной платформе Google, но в целом, является ли это ограничением контейнеров и делают ли другие облачные провайдеры что-то подобное?

2. Я не знаю Icecast. Можете ли вы поделиться подмножеством своей конфигурации?

3. Образ docker, запущенный при облачном запуске, имеет следующее icecast.xml и при развертывании контейнера порт по умолчанию изменяется на 8000. Вот основы подключения к серверу через исходный клиент. На mixxx (исходный клиент) Я ввел предоставленный URL-адрес Cloud Run и перепробовал все виды портов. Не знаю, нужна ли вам эта информация