API 网关接受来自客户端的 API 请求,根据定义的策略处理它们,将它们定向到适当的服务,并组合响应以简化用户体验。 通常,它通过调用多个微服务并聚合结果来处理请求。 它还可以在旧部署中进行协议之间的转换。
API 网关接受来自客户端的 API 请求,根据定义的策略处理它们,将它们定向到适当的服务,并组合响应以简化用户体验。 通常,它通过调用多个微服务并聚合结果来处理请求。 它还可以在旧部署中进行协议之间的转换。
API 网关通常实现的功能包括:
为了获得额外的应用程序和 API 级别的安全性,API 网关可以通过 Web应用防火墙 (WAF) 和拒绝服务 (DoS) 保护进行增强。
部署用于应用程序交付的 API 网关可以帮助:
对于基于微服务的applications,API 网关充当系统的单一入口点。 它位于微服务的前端,通过将应用程序的复杂性与客户端的复杂性分离,简化了客户端实现和微服务应用程序。
在微服务架构中,API网关负责请求路由、组合和策略实施。 它通过简单地将某些请求路由到适当的后端服务来处理它们,并通过调用多个后端服务并聚合结果来处理其他请求。
API 网关可能为微服务提供其他功能,例如身份验证、授权、监控、负载平衡和响应处理,将非功能性需求的实现卸载到基础设施层,并帮助开发人员专注于核心业务逻辑,从而加快应用程序的发布速度。
在我们的博客上了解有关使用 API 网关构建微服务的更多信息。
容器是运行微服务的最有效方式,而 Kubernetes 是部署和管理容器化applications和工作负载的事实标准。
根据系统架构和应用交付要求,API 网关可以部署在 Kubernetes 集群前面作为负载均衡器(多集群级别),在其边缘作为 Ingress 控制器(集群级别),或者在其内部作为服务网格(服务级别)。
对于位于边缘和 Kubernetes 集群内的 API 网关部署,最佳做法是使用 Kubernetes 原生工具作为 API 网关。 此类工具与 Kubernetes API 紧密集成,支持 YAML,并可通过标准 Kubernetes CLI 进行配置;示例包括NGINX Ingress Controller和NGINX Service Mesh 。
在 API 网关与API 中了解有关 API 网关和 Kubernetes 的更多信息。 入口控制器与 服务网格 在我们的博客上。
Ingress 网关和Ingress 控制器是实现Ingress 对象的工具,它是 Kubernetes Ingress API 的一部分,用于将 Kubernetes 中运行的applications暴露给外部客户端。 它们管理用户和applications之间的通信(用户到服务或南北连接)。 然而,Ingress 对象本身的功能非常有限。 例如,它不支持定义附加在其上的安全策略。 因此,许多供应商创建自定义资源定义 (CRD) 来扩展其 Ingress 控制器的功能并满足不断变化的客户需求和要求,包括使用 Ingress 控制器作为 API 网关。
例如, NGINX Ingress Controller可以与其VirtualServer 和 VirtualServerRoute 、 TransportServer和Policy自定义资源一起用作 Kubernetes 集群边缘的全功能 API 网关。
虽然名称相似,但 API 网关与Kubernetes 网关 API并不相同。Kubernetes网关 API是由 Kubernetes 社区管理的一个开源项目,旨在改进和标准化 Kubernetes 中的服务网络。 Gateway API 规范由Kubernetes Ingress API发展而来,旨在解决在生产中部署 Ingress 资源以公开 Kubernetes 应用程序的各种挑战,包括定义请求处理的细粒度策略以及在多个团队和角色之间委托配置控制的能力。
基于 Gateway API 规范构建的工具(例如NGINX Kubernetes Gateway )可用作 API 网关,用于将请求路由到特定微服务、实施流量策略以及启用金丝雀和蓝绿部署等用例。
观看此简短视频,其中 NGINX 的 Jenn Gile 解释了API 网关和 Kubernetes Gateway API 之间的区别。
术语“API 网关”和“API 管理”经常(但不正确)被用来描述相同的功能。
API 网关是 API 调用的数据平面入口点,代表客户端对目标applications和服务的请求。 它通常根据定义的策略执行请求处理,包括身份验证、授权、访问控制、SSL/TLS 卸载、路由和负载平衡。
API 管理是部署、记录、操作和监控各个 API 的过程。 它通常通过管理平面软件(例如 API 管理器)来实现,该软件定义并将策略应用于 API 网关和开发人员门户。
根据业务和功能需求,API 网关可以作为数据平面的独立组件部署,也可以作为集成 API 管理解决方案的一部分部署,例如F5 NGINX 管理套件 API 连接管理器。
在确定 API 网关的要求时,需要考虑几个关键因素:
根据您的用例和部署模式,NGINX 提供了多种部署和操作 API 网关的选项。
Kubernetes 原生工具:
首先申请 NGINX Ingress Controller 与 NGINX App Protect WAF 和 DoS 的30 天免费试用版,然后下载始终免费的 NGINX Service Mesh。
通用工具:
要了解有关使用 NGINX Plus 作为 API 网关的更多信息,请申请30 天免费试用,并参阅我们博客上的将 NGINX 部署为 API 网关。 要试用 NGINX 管理套件,请申请30 天免费试用版。