Предыстория: мы использовали Docker Swarm с несколькими nginx, nodejs/auth, службой веб-приложений, и этот стек был связан со шлюзом приложений. Несколько арендаторов/клиентов были сопоставлены с IP-адресом шлюза приложений, и на основе идентификатора клиента мы показывали требуемые страницы (НЕТ настраиваемых перенаправлений в nginx). URL-адреса клиентов были такими, как customer1.mycompany.com, customer2.mycompany.com и т. д....
Теперь мы пытаемся перенести все в Kubernetes (точнее, в AKS).
Таким образом, кластер AKS состоит из нескольких модулей nginx, nodejs/auth, веб-приложений. Попытка добавить шлюз приложений в ту же группу ресурсов со всеми настройками подсети/сети.
Но теперь, когда пользователь нажимает URL-адрес, запросы не отправляются в nginx. Таким образом, приходится использовать входной контроллер.
Настроил входной контроллер, но еще один блокпост. Nginx начал выдавать ошибку DNS и все такое (конфиг Nginx имеет имя службы nodejs/auth). В целях тестирования изменил имя на IP, и, к счастью, перенаправление сработало, но теперь это перенаправление переходит в циклический цикл.
Любые мысли по устранению проблем с циклическим циклом и более простому подключению AKS к шлюзу приложений.
🤔 А знаете ли вы, что...
Node.js активно использует асинхронное программирование и обратные вызовы для обработки многозадачности.
Проблемы с циклическим циклом могут быть вызваны несколькими причинами, и это зависит от того, как настроен ваш Nginx, но если вы хотите избежать контроллера входящего трафика, взгляните на проект Контроллер входящего шлюза приложений (AGIC). Он использует контроллер Kubernetes для управления шлюзом приложений и автоматически обновляет правила шлюза при создании нового ресурса Ingress:
Наконец, исправил это, используя подход развертывания Brownfield / Greenfield (зависит от сценария).