概述

概述

我们正在寻找一个 Azure 解决方案,用于通过单个入口点将传入的 API 消息(基于微服务)路由到多个Azure Web App实例(*.azurewebsites.net),而不是多个虚拟机。

路由将基于 URL,因为 URL 部分包含微服务名称。之后,我们打算使用相同的服务进行负载平衡。

目前,我们正在使用nginx具有 URL 重定向的自定义服务器执行此操作,但我们想知道是否可以使用本机 Azure 服务来实现。

到目前为止,似乎是Azure Application Gateway面向 VM 的。

答案1

概述


不要害怕陷入困境的公民;Azure API 管理已经赶来拯救你!

Azure API 管理允许您拥有一个用于提取的端点,并允许您基于 URL 路由到各种服务,安克萨斯Azure Web 应用逻辑应用甚至更多!你甚至可以将其路由到应用程序网关如果你想。

它还允许您保护您的服务,而无需编写一个全新的应用程序来托管在 AKS 或其他服务中。它还允许您安全存储机密在资源中,这样您就不需要在代码中存储凭据。

由于该解决方案是无服务器的,因此您可以大幅减少责任,同时最大限度地提高回报、安全性和可维护性。无需混乱的 helm/AKS 清单。

图表


图表描述了流量进入 API 管理服务,然后将流量路由到适当的服务。

答案2

但我们想知道是否可以通过原生 Azure 服务实现

有一个名为Azure Kubernetes 服务 (AKS).可用于在标准化的环境中操作容器。

Kubernetes 有一个对象叫做入口,这是一种声明式的方式来描述您的系统提供的基于 HTTP 的服务,以及它们背后对应的后端服务。有多种入口控制器您可以选择的实现,将 Ingress 对象描述的服务集转变为具有适当配置的实际工作的反向代理/负载均衡器。NGINX 入口控制器是这些实现之一,是基础 Kubernetes 项目的一部分。它使用由 Ingress Controller 配置和控制的 nginx 反向代理。

作为 Ingress 对象的目标,您可以使用类型 ExternalName服务对象来引用 AKS 外部的目标服务,或者您可以使用其他类型的服务对象来引用 AKS 内部的目标服务。

答案3

相关内容