Kubernetes - AKS:将 AKS 集群与应用程序网关链接起来。多个站点(不是子页面)指向同一个 IP

Kubernetes - AKS : Linking AKS cluster with application gateway. Multiple sites (not sub page) point to same IP

背景:我们正在使用 Docker swarm 和多个 nginx,nodejs/auth,web 应用程序服务,这个堆栈链接到应用程序网关。多个 tenants/customers 被映射到应用程序网关 IP,并且在内部基于客户 ID,我们显示了所需的页面(nginx 中没有自定义重定向)。客户网址如 customer1.mycompany.com、customer2.mycompany.com 等....

现在,我们正在尝试将所有内容都迁移到 Kubernetes(确切地说是 AKS)。

所以 AKS 集群由多个 nginx、nodejs/auth、Web 应用程序 pods 组成。尝试在具有所有 subnet/networking 设置的同一资源组中添加应用程序网关。

但现在当用户点击 URL 时,请求不会发送到 nginx。所以发现必须使用ingress controller.

设置了入口控制器,但设置了另一个障碍。 Nginx 开始抛出 DNS 错误和所有(Nginx conf 有 nodejs/auth 服务名称)。出于测试目的,将名称更改为 IP,幸运的是重定向有效,但现在此重定向进入循环。

关于修复循环问题以及让 AKS 以更简单的方式连接到应用程序网关的任何想法。

循环问题可能是由多种原因引起的,这取决于您的 Nginx 配置方式,但如果您想避免使用入口控制器,请查看 Application Gateway Ingress Controller (AGIC) 项目。它使用 Kubernetes 控制器来管理应用程序网关,它会在您创建新的 Ingress 资源时自动更新网关规则:

最终使用 Brownfield/Greenfield(取决于场景)部署方法修复了它。