实现¶
本文档跟踪网关 API 的下游实现和集成,并提供有关它们的实现状态和资源引用的信息。
鼓励网关 API 的实施者和集成者使用有关其实现、覆盖的版本和帮助用户入门的文档的状态信息来更新本文档。
比较不同实现之间的扩展支持功能
查看表格以快速比较项目支持的功能。这些概述了已通过核心一致性测试的网关控制器实现,并重点介绍了他们已实施的扩展一致性功能。
网关控制器实现状态 ¶
- Acnodal EPIC
- Amazon Elastic Kubernetes Service (alpha)
- Apache APISIX (beta)
- Avi Kubernetes 运算符 (技术预览)
- Azure Application Gateway for Containers (GA)
- Cilium (beta)
- Contour (GA)
- Easegress (GA)
- Emissary-Ingress (Ambassador API 网关) (alpha)
- Envoy 网关 (GA)
- Flomesh 服务网格 (beta)
- Gloo 网关 2.0 (beta)
- Google Kubernetes Engine (GA)
- HAProxy Ingress (alpha)
- HAProxy Kubernetes Ingress 控制器 (GA)
- HashiCorp Consul
- Istio (GA)
- Kong (GA)
- Kuma (GA)
- LiteSpeed Ingress 控制器
- NGINX 网关结构 (GA)
- ngrok (预览)
- STUNner (beta)
- Traefik 代理 (GA)
- Tyk (正在进行中)
- WSO2 APK (GA)
服务网格实现状态 ¶
集成 ¶
- Flagger (公开预览)
- cert-manager (alpha)
- argo-rollouts (alpha)
- Knative (alpha)
- Kuadrant (正在进行中)
实现¶
在本节中,您将找到特定实现的博客文章、文档和其他网关 API 参考资料的特定链接。
Acnodal EPIC¶
EPIC 是一个使用 Kubernetes 设计和构建的开源外部网关平台。它包括网关集群、k8s 网关控制器、独立的 Linux 网关控制器和网关服务管理器。它们共同创建一个平台,为集群用户提供网关服务。每个网关都包含在网关集群(而不是工作负载集群)上运行的多个 Envoy 实例。网关服务管理器是一个简单的用户管理和 UI,可用于为公共和私有集群实施网关即服务基础设施,并集成非 k8s 端点。
Amazon Elastic Kubernetes Service¶
Amazon Elastic Kubernetes Service (EKS) 是一种托管服务,您可以使用它在 AWS 上运行 Kubernetes,而无需安装、操作和维护自己的 Kubernetes 控制平面或节点。EKS 对网关 API 的实现是通过 AWS 网关 API 控制器 来完成的,该控制器为 EKS 集群中的网关、HTTPRoute 配置 Amazon VPC Lattice 资源。
APISIX¶
Apache APISIX 是一款动态、实时、高性能的 API 网关。APISIX 提供丰富的流量管理功能,例如负载均衡、动态上游、金丝雀发布、断路器、身份验证、可观察性等等。
APISIX 目前支持其 Apache APISIX Ingress 控制器 的网关 API v1beta1
版本规范。
Avi Kubernetes 运算符¶
Avi Kubernetes 运算符 (AKO) 使用 VMware NSX Advanced Load Balancer 提供 L4-L7 负载均衡。
从 AKO 版本 v1.11.1 开始,支持网关 API v0.6.2 版本。它实现了网关 API 规范的 v1beta1 版本,支持 GatewayClass、Gateway 和 HTTPRoute 对象。AKO 网关 API 目前处于技术预览阶段。
有关部署和使用 AKO 网关 API 的文档,请参见 Avi Kubernetes 运算符网关 API。
Azure Application Gateway for Containers¶
Application Gateway for Containers 是一种托管应用程序(第 7 层)负载均衡解决方案,为在 Azure 中的 Kubernetes 集群中运行的工作负载提供动态流量管理功能。请按照 快速入门指南 部署 ALB 控制器,并开始使用网关 API。
Cilium¶
Cilium 是一款基于 eBPF 的网络、可观察性和安全性解决方案,适用于 Kubernetes 和其他网络环境。它包括 Cilium 服务网格,这是一种高效的网格数据平面,可以在 无边车模式 下运行,以显着提高性能,并避免边车的操作复杂性。Cilium 还支持边车代理模型,为用户提供选择。从 Cilium 1.14 开始,Cilium 支持网关 API,通过了 v0.7.1 的一致性测试。
Cilium 是开源的,是 CNCF 毕业项目。
如果您对 Cilium 服务网格有任何疑问,可以在 Cilium Slack 的 #service-mesh 频道寻求帮助。如果您想参与开发工作,请查看 #development 频道或加入我们的 每周开发者会议。
Contour¶
Contour 是一个基于 Envoy 的 Kubernetes 入门控制器,属于 CNCF 开源项目。
Contour v1.29.1 实现了 Gateway API v1.0.0。它支持所有 标准渠道 v1 API 组资源(GatewayClass、Gateway、HTTPRoute、ReferenceGrant),以及大多数 v1alpha2 API 组资源(TLSRoute、TCPRoute、GRPCRoute、ReferenceGrant 和 BackendTLSPolicy)。Contour 的实现通过了 v1.0.0 版本中包含的所有核心和大多数扩展的 Gateway API 符合性测试。
有关如何部署和使用 Contour 的 Gateway API 实现的信息,请参阅 Contour Gateway API 指南。
如果您在使用 Contour 的实现方面遇到问题,请 创建一个 issue 或在 #contour Kubernetes Slack 频道 寻求帮助。
Easegress¶
Easegress 是一款云原生流量编排系统。
它可以作为现代化的复杂网关、强大的分布式集群、灵活的流量编排器,甚至是一个易于访问的服务网格。
Easegress 目前支持 GatewayController 实现的 Gateway API v1beta1
版本规范。
Emissary-Ingress(Ambassador API Gateway)¶
Emissary-Ingress(以前称为 Ambassador API Gateway)是一个开源 CNCF 项目,它基于 Envoy Proxy,为 Kubernetes 提供入门控制器和 API 网关。有关使用 Emissary 中的 Gateway API 的更多详细信息,请参阅 此处。
Envoy Gateway¶
Envoy Gateway 是一个 Envoy 子项目,用于管理基于 Envoy 的应用程序网关。支持的 Gateway API 的 API 和字段概述在 此处。使用 快速入门 在几个简单的步骤中让 Envoy Gateway 运行 Gateway API。
Flomesh 服务网格(FSM)¶
Flomesh 服务网格 是一个社区驱动的轻量级服务网格,用于 Kubernetes 的东西向和南北向流量管理。Flomesh 使用 ebpf 进行第 4 层流量管理,使用 pipy 代理进行第 7 层流量管理。Flomesh 自带负载均衡器、跨集群服务注册/发现,并支持多集群网络。它支持 Ingress
(因此它也是一个“入门控制器”)和 Gateway API。
FSM 对 Gateway API 的支持是基于 Flomesh Gateway API 构建的,目前支持 Kubernetes Gateway API v0.7.1 版本,对 v0.8.0
的支持正在进行中。
Gloo Gateway¶
Gloo Gateway 由 Solo.io 开发,是一款功能丰富、Kubernetes 原生的入门控制器和下一代 API 网关。Gloo Gateway 2.0 将 Gateway API 的强大功能和社区支持带入了其现有的控制平面实现。
Google Kubernetes Engine¶
Google Kubernetes Engine (GKE) 是 Google Cloud 提供的托管 Kubernetes 平台。GKE 对 Gateway API 的实现是通过 GKE Gateway 控制器 完成的,该控制器为 GKE 集群中的 Pod 配置 Google Cloud 负载均衡器。
GKE Gateway 控制器支持加权流量拆分、镜像、高级路由、多集群负载均衡等功能。请参阅文档以部署 私有或公共网关,以及 多集群网关。
HAProxy 入门¶
HAProxy 入门 是 HAProxy 的社区驱动的入门控制器实现。
HAProxy 入门 v0.13 部分支持 Gateway API 的 v1alpha1 规范。请参阅 控制器对 Gateway API 的文档,了解符合性和路线图的信息。
HAProxy Kubernetes 入门控制器¶
HAProxy Kubernetes 入门控制器是一个由 HAProxy Technologies 维护的开源项目,它为 Kubernetes 提供快速高效的流量管理、路由和可观测性。自 1.10 版本起,它就内置支持 Gateway API。使用相同的入门控制器部署,您就可以同时使用 Ingress API 和 Gateway API。有关更多详细信息,请参阅 文档。在 GitHub 仓库 中,您还可以找到有关支持的 API 资源的更多信息。
HashiCorp Consul¶
Consul 由 HashiCorp 开发,是一个用于多云网络的开源控制平面。单个 Consul 部署可以跨越裸机、虚拟机和容器环境。
Consul 服务网格可以在任何 Kubernetes 发行版上运行,连接多个集群,Consul CRD 提供 Kubernetes 原生的工作流来管理网格中的流量模式和权限。 Consul API 网关 支持 Gateway API 来管理南北向流量。
有关目前支持的 Gateway API 版本和功能的信息,请参阅 Consul API 网关文档。
Istio¶
Istio 的最小安装可以用于为集群入口流量控制提供完全符合 Kubernetes Gateway API 的实现。对于服务网格用户,Istio 还完全支持 GAMMA 倡议 的实验性 Gateway API 支持网格内东西向流量管理。
Istio 的大部分文档,包括所有 入门任务 和几个网格内部流量管理任务,都已经包含了使用 Gateway API 或 Istio 配置 API 配置流量的并行说明。有关 Istio 中 Gateway API 实现的更多信息,请查看 Gateway API 任务。
Kong¶
Kong 是一个为混合和多云环境构建的开源 API 网关。
Kong 在 Kong Kubernetes 入门控制器 (KIC) 中支持 Gateway API,有关使用信息,请参阅 Gateway API 指南。
Kong 还支持 Kong Gateway 运算符 中的 Gateway API。
如果您在使用 Kong 的实现方面遇到问题,请随时 创建一个 issue 或 讨论。您也可以在 #kong Kubernetes Slack 频道 寻求帮助。
Kuma¶
Kuma 是一个开源服务网格。
Kuma 为 Kuma 内置的基于 Envoy 的网关实现了 Gateway API 规范,并提供 beta 稳定性保证。有关如何使用 Gateway API 设置 Kuma 内置网关的信息,请查看 Gateway API 文档。
Kuma 2.3 及更高版本支持 GAMMA 倡议 的实验性 Gateway API 支持网格内东西向流量管理。
Linkerd¶
Linkerd 是第一个获得 CNCF 毕业认证的 服务网格。它是唯一一个不基于 Envoy 的主要网格,它依赖于专门构建的 Rust 微代理,为 Kubernetes 带来了安全性、可观测性和可靠性,而无需复杂性。
Linkerd 2.14 及更高版本支持 GAMMA 倡议 的实验性 Gateway API 支持网格内东西向流量管理。
LiteSpeed 入门控制器¶
LiteSpeed 入门控制器 使用 LiteSpeed WebADC 控制器作为入门控制器和负载均衡器,在 Kubernetes 集群上管理流量。它实现了完整的核心 Gateway API,包括 Gateway、GatewayClass、HTTPRoute 和 ReferenceGrant,以及 cert-manager 的 Gateway 功能。Gateway 已完全集成到 LiteSpeed 入门控制器中。
- 产品文档.
- Gateway 特定文档.
- 您可以在 LiteSpeed 支持网站 上获得完整的支持。
NGINX Gateway Fabric¶
NGINX Gateway Fabric 是一个开源项目,它使用 NGINX 作为数据平面来实现 Gateway API。该项目的目的是实现核心 Gateway API - Gateway、GatewayClass、HTTPRoute、TCPRoute、TLSRoute 和 UDPRoute - 以配置 HTTP 或 TCP/UDP 负载均衡器、反向代理或运行在 Kubernetes 上的应用程序的 API 网关。NGINX Gateway Fabric 支持 Gateway API 的子集。
如果您对 NGINX Gateway Fabric 有任何建议或遇到问题,请 创建一个 issue 或在 GitHub 上进行 讨论。您也可以在 #nginx-gateway-fabric NGINX Slack 频道 寻求帮助。
ngrok Kubernetes 运算符¶
ngrok Kubernetes 运算符 提供了 Gateway API 的实现,该实现使用 ngrok 的 ingress-as-a-service。该项目使用 Gateway API 支持将流量从 ngrok 的全球网络路由到 Kubernetes 集群上运行的应用程序。这可以轻松地将 ngrok 的优势(如安全性、网络策略和全球存在)与云服务的简单性结合起来。该运算符包含 Gateway API 实现以及使用 Kubernetes Ingress 的控制器。Gateway API 实现目前正在开发中,仅支持 Gateway、GatewayClass 和 HTTPRoute。随着 TLSRoute 和 TCPRoute 从实验性过渡到稳定状态,它们也将被实现。
您可以阅读我们的 文档 以获取更多信息。如果您有任何功能请求或错误报告,请 创建一个 issue。您也可以在 Slack 上寻求帮助。
STUNner¶
STUNner 是一个 Kubernetes 的开源云原生 WebRTC 媒体网关。STUNner 的目的是专门简化 NAT 穿越和动态媒体路由,以便将 WebRTC 媒体流无缝地摄取到 Kubernetes 集群中。同时,STUNner 为大规模实时通信服务提供了更高的安全性和监控能力。STUNner 数据平面向 WebRTC 客户端公开符合标准的 TURN 服务,而控制平面支持 Gateway API 的子集。
STUNner 目前支持网关 API 规范的 v1alpha2
版本。有关如何部署和使用 STUNner 进行 WebRTC 媒体摄取的信息,请查看 安装指南。有关 STUNner 的所有问题、评论和错误报告,请直接联系 STUNner 项目。
Traefik 代理¶
Traefik 代理 是一个开源的云原生应用代理。
Traefik 代理目前支持网关 API 规范的 v1.1.0
版本,有关如何部署和使用它的更多信息,请查看 Kubernetes 网关提供程序文档。Traefik 代理的实现通过了所有 HTTP 核心和一些扩展一致性测试,但也支持实验频道中的 TCPRoute 和 TLSRoute 功能。
如需获得 Traefik 代理的帮助和支持,请 创建一个问题,或在 Traefik Labs 社区论坛 中寻求帮助。
Tyk¶
Tyk 网关 是一个云原生、开源的 API 网关。
Tyk.io 团队正在努力实现网关 API。您可以在 此处 跟踪该项目的进展。
WSO2 APK¶
WSO2 APK 是一种专门针对 Kubernetes 环境定制的 API 管理解决方案,为组织提供无缝集成、灵活性和可扩展性,帮助他们管理 API。
WSO2 APK 实施了网关 API,包括网关和 HTTPRoute 功能。此外,它还通过使用自定义资源 (CR) 提供对速率限制、身份验证/授权和分析/可观察性的支持。
有关网关 API 支持的版本和功能的最新信息,请参阅 APK 网关文档。如果您有任何问题或想做出贡献,请随时 创建问题或拉取请求。加入我们的 Discord 频道,与我们联系并参与讨论。
集成¶
在本节中,您将找到特定集成对应的博文、文档和其他网关 API 参考的链接。
Flagger¶
Flagger 是一种渐进式交付工具,可自动执行在 Kubernetes 上运行的应用程序的发布过程。
Flagger 可用于使用网关 API 自动执行金丝雀部署和 A/B 测试。它支持网关 API 的 v1alpha2
和 v1beta1
规范。您可以参考 本教程,了解如何将 Flagger 与任何网关 API 实现配合使用。
cert-manager¶
cert-manager 是一种在云原生环境中自动管理证书的工具。
cert-manager 可以为网关资源生成 TLS 证书。这通过向网关添加注释来配置。它目前支持网关 API 的 v1alpha2
规范。您可以参考 cert-manager 文档 尝试使用它。
Argo rollouts¶
Argo Rollouts 是一种用于 Kubernetes 的渐进式交付控制器。它支持多种高级部署方法,例如蓝绿部署和金丝雀部署。Argo Rollouts 通过 插件 支持网关 API。
Knative¶
Knative 是一个基于 Kubernetes 构建的无服务器平台。Knative Serving 提供一个简单的 API,用于运行无状态容器,并自动管理 URL、修订版之间的流量拆分、基于请求的自动缩放(包括缩放到零)以及自动 TLS 配置。Knative Serving 通过插件架构支持多个 HTTP 路由器,包括一个 网关 API 插件,该插件目前处于 alpha 阶段,因为并非所有 Knative 功能都受支持。
Kuadrant¶
Kuadrant 是一种开源的多集群网关 API 控制器,它与其他网关 API 提供程序集成并为它们提供策略。
Kuadrant 支持网关 API,用于集中定义网关并附加策略(例如 DNS、TLS、身份验证和速率限制),这些策略适用于多集群环境中的所有网关实例。Kuadrant 与 Istio 作为底层网关提供程序协同工作,并计划与其他网关提供程序(例如 Envoy Gateway)协同工作。
如需获得 Kuadrant 实现的帮助和支持,请随时 创建一个问题,或在 #kuadrant 频道 (Kubernetes Slack) 中寻求帮助。