网关 API 网格支持已提升至稳定版

下一代 Kubernetes 流量路由 API 现已针对服务网格用例普遍可用。

2024 年 5 月 13 日 | 作者:John Howard - solo.io

我们很高兴地宣布,网关 API 中的服务网格支持现已正式进入“稳定版”!随着此版本(包含在网关 API v1.1 和 Istio v1.22 中),用户可以利用下一代流量管理 API 来处理入口(“南北”)和服务网格用例(“东西”)。

什么是网关 API?

网关 API 是一组作为 Kubernetes 一部分的 API,专注于流量路由和管理。这些 API 的灵感来自 Kubernetes 的 Ingress 和 Istio 的 VirtualServiceGateway API,并履行着许多相同的功能。

自 2020 年以来,这些 API 一直在 Istio 及 广泛的协作 中开发,并且自那时以来已经取得了长足的进步。虽然该 API 最初仅针对服务入口用例(已于 去年 进入 GA),但我们一直设想允许在集群内也使用相同的 API 来处理流量。

随着此版本的发布,这一愿景成为现实:Istio 用户可以使用相同的路由 API 来处理其所有流量!

入门

在整个 Istio 文档中,所有示例都已更新以展示如何使用网关 API,因此探索一些 任务 以深入了解。

对于那些已经使用网关 API 来处理入口的用户以及那些今天使用 VirtualService 来处理服务网格的用户来说,使用网关 API 来处理服务网格应该感觉很熟悉。

这是一个简单的示例,它演示了如何根据请求标头将请求路由到 Service 的两个不同版本

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  name: reviews
spec:
  parentRefs:
  - group: ""
    kind: Service
    name: reviews
    port: 9080
  rules:
  - matches:
    - headers:
      - name: my-favorite-service-mesh
        value: istio
    filters:
    - type: RequestHeaderModifier
      requestHeaderModifier:
      add:
        - name: hello
          value: world
    backendRefs:
    - name: reviews-v2
      port: 9080
  - backendRefs:
    - name: reviews-v1
      port: 9080

分解来看,我们有几个部分

有关更多详细信息,请参阅 Istio 的流量路由内部机制网关 API 的 Service 文档

我应该使用哪个 API?

由于职责(和名称)重叠,选择使用哪些 API 可能有点令人困惑。

以下是分解

API 名称对象类型状态建议
网关 APIHTTPRouteGateway网关 API v1.0(2023)稳定版对于新部署使用,特别是与 环境模式 一起使用
Istio APIVirtual ServiceGatewayIstio 1.22(2024)中的 v1对于现有部署使用,或者需要高级功能时使用
Ingress APIIngressKubernetes v1.19(2020)稳定版仅用于传统部署

您可能会想知道,鉴于上述情况,为什么 Istio API 被 同时提升至 v1?这是为了准确地对 API 的稳定性进行分类。虽然我们认为网关 API 是流量路由 API 的未来(以及现在!),但我们现有的 API 将长期存在,并具有完全的兼容性。这反映了 Kubernetes 对 Ingress 的做法,该 API 被提升至 v1,同时将未来的工作指向网关 API。

社区

此稳定版升级代表了整个项目中无数小时工作和协作的成果。看看参与该 API 的 组织列表 并回顾我们取得的进步,真是令人难以置信。

特别感谢我的 该工作的共同负责人:Flynn、Keith Mattix 和 Mike Morris,以及无数其他参与者。

有兴趣参与进来,甚至只是提供反馈吗?查看 Istio 的 社区页面 或网关 API 的 贡献指南

分享此帖子