Назначьте статический публичный адрес для развертывания экземпляра контейнера Azure
контекст
Работа над проектом по развертыванию успокоительного приложения API и отдельной службы TCP в экземпляре контейнера Azure. Служба TCP требует статического адреса Ipv4 по устаревшим причинам.
Вопрос
Я пытаюсь изолировать свои варианты назначения в качестве статического общедоступного IP-адреса службе TCP, размещенной в экземпляре контейнера Azure. Какие есть варианты?
проверенный
Развернутый шлюз приложений Azure со статическим общедоступным IP-адресом. Шлюз приложения позволяет пулу серверов направляться на конечную точку IP или FQDN. Похоже, что это работает (см. Диаграмму). Хотя параметры из пула бэкэнда позволяют использовать только HTTP и HTTPS, но не настраиваемые порты. Возможно, этим можно манипулировать, если служба TCP может прослушивать 80, а веб-API - 443. Шлюз приложения - это ресурс уровня 7 только для трафика HTTP и HTTPS.
Балансировщик нагрузки Azure. Может быть направлено только на виртуальную машину, набор доступности или набор масштабирования виртуальной машины.
Назначить статический адрес Ресурсу. Не допускается для экземпляров контейнера.
Диспетчер трафика. Не представляется правильным тип ресурса для этого развертывания.
Смотрите схему. Экземпляры контейнера для API и TCP SERVICE имеют один и тот же частный IP-адрес, когда я выполняю запрос через сеанс BASH. Предполагается, что они размещены на том же хосте (обозначен как Группа контейнеров) на прилагаемой диаграмме. Не уверен, что это правильный ярлык, извините, я новичок в технологии контейнеров.
Спасибо за любой совет. Скотт
1 ответ
Возможное решение
Может быть решение:
- Создан новый VNET
- Диапазон адресов 10.60.0.0/23
- Созданные подсети Контейнеры 10.60.0.0/24
- Создан ресурс брандмауэра VNET
- Создана подсеть Firewall 10.60.1.0/24
- Назначенный статический публичный адрес для ресурса брандмауэра
Теперь "Правила" брандмауэра позволяют:
- Правила NAT - типичная трансляция портов
- Сетевые правила - адреса маршрутов
- Правила применения - маршрут FQDN
Работая над развертыванием контейнера в этой подсети dev, на первый взгляд есть все опции: порт перенаправления, ip или FQDN. Изменения в игре - это возможность назначать статический публичный адрес ресурсу в VNET и разрешать правила NAT, сети или приложения перенаправлять трафик.
Завтра обновлю ветку по результату.
Обновление февраль 2019
Итак, не используйте ресурс брандмауэра Azure. Это очень дорого и, в моем случае, ни в коем случае не экономически выгодно - около £500 в месяц У меня не было времени проверить теорию с помощью брандмауэра, но из-за стоимости не было смысла следовать ей дальше.
Экземпляры контейнеров Azure позволяют открывать контейнеры непосредственно в Интернете с помощью IP-адреса и полного доменного имени (FQDN). При создании экземпляра контейнера вы можете указать собственную метку DNS-имени, чтобы ваше приложение было доступно по адресу customlabel.azureregion.azurecontainer.io. К сожалению, статические публичные IP-адреса в настоящее время не поддерживаются ACI.
Определенные ограничения применяются при развертывании групп контейнеров в виртуальной сети.
Чтобы развернуть группы контейнеров в подсети, подсеть не может содержать какие-либо другие типы ресурсов. Удалите все существующие ресурсы из существующей подсети перед развертыванием в ней групп контейнеров или создайте новую подсеть.
Группы контейнеров, развернутые в виртуальной сети, в настоящее время не поддерживают общедоступные IP-адреса или метки имен DNS.
Из-за задействованных дополнительных сетевых ресурсов развертывание группы контейнеров в виртуальной сети обычно несколько медленнее, чем развертывание стандартного экземпляра контейнера.
https://feedback.azure.com/forums/602224-azure-container-instances
Решение развернуто
- Виртуальная машина Ubuntu, созданная с помощью Azure Image
- Статический публичный адрес, назначенный виртуальной машине
- Api и служба развернуты в образе докера на виртуальной машине
- Шаблон руки, используемый для развертывания, интегрированный с сборкой и выпуском DevOps
- Стоимость в месяц £23,52 (Ядра: 2, 3 ГБ оперативной памяти, 16 ГБ HD)