Kubernetes Gateway API 正式稳定:服务网格流量路由全解析(2025)

作者:API传播员 · 2025-09-21 · 阅读时间:3分钟

下一代 Kubernetes 流量路由 Gateway API 的功能、使用方法以及如何选择合适的 API


什么是网关 API?

网关 API 是一组专注于流量路由和管理的 Kubernetes API,其设计灵感来源于 Kubernetes 的 Ingress 以及 Istio 的 VirtualServiceGateway API,旨在实现统一的流量管理功能。

通过本次发布,Istio 用户可以对所有流量使用统一的路由 API。这一改进不仅简化了流量管理,还提升了服务网格的灵活性和可扩展性。


如何开始使用 Gateway API?

对于已经使用 Gateway API 管理入口流量的用户,以及目前使用 VirtualService 管理服务网格的用户来说,切换到 Gateway API 是一个自然的过渡。以下是两者的一些关键区别:

  • 与入口的 Gateway API 相比:路由的目标从“网关”变为“服务”。
  • VirtualService 相比:路由与一组“主机”相关联,并以“服务”为目标。

以下是一个简单的示例,展示了如何根据请求头将流量路由到两个不同版本的服务:

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: reviews
spec:
  parentRefs:
    - group: ""
      kind: Service
      name: reviews
      port: 9080
  rules:
    - matches:
        - headers:
            - name: 我最喜欢的服务网格
              value: istio
      filters:
        - type: RequestHeaderModifier
          requestHeaderModifier:
            add:
              - name: hello
                value: world
      backendRefs:
        - name: reviews-v2
          port: 9080
        - name: reviews-v1
          port: 9080

示例解析

  1. 匹配路由:将路由配置附加到 reviews 服务,所有以 reviews 为目标的请求都将应用此配置。
  2. 流量匹配条件:通过 matches 配置,定义哪些流量应该由此路由处理。
  3. 请求修改:可以选择性地修改请求,例如在此示例中添加了一个请求头。
  4. 目标服务:根据配置,将流量分发到应用程序的两个不同版本。

我应该选择哪种 API?

由于 Gateway API 与其他 API(如 VirtualService)在功能和命名上存在一定重叠,选择合适的 API 可能会让人感到困惑。以下是一些建议:

  • Gateway API v1.0(2023 年稳定版):适用于需要统一流量管理的场景。
  • Istio 1.22(2024 年支持 Gateway API v1):推荐用于服务网格的新部署。
  • VirtualService(Kubernetes v1.19 稳定版):适合现有部署或需要高级功能的场景。

根据具体需求选择合适的 API,可以帮助您更高效地管理流量。


总结

Gateway API 的稳定版发布标志着 Kubernetes 流量管理的一个重要里程碑。通过统一的 API,用户可以更轻松地管理流量路由,提升服务网格的灵活性和可操作性。无论您是新用户还是现有用户,Gateway API 都是一个值得探索的强大工具。

原文链接: https://istio.io/latest/blog/2024/gateway-mesh-ga/