Gateway APIメッシュサポートが安定版に昇格

次世代KubernetesトラフィックルーティングAPIが、サービスメッシュユースケースで一般提供開始となりました。

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

サービスメッシュにおけるGateway APIのサポートが正式に「安定版」になったことを発表できることを嬉しく思います!このリリース(Gateway API v1.1およびIstio v1.22の一部)により、ユーザーは次世代トラフィック管理APIを、イングレス(「ノースサウス」)とサービスメッシュユースケース(「イーストウエスト」)の両方で使用できるようになります。

Gateway APIとは?

Gateway APIは、Kubernetesの一部であるAPIの集合で、トラフィックルーティングと管理に焦点を当てています。これらのAPIは、KubernetesのIngressやIstioのVirtualServiceおよびGateway APIに触発され、多くの同様の役割を果たしています。

これらのAPIは、Istioと幅広い協業を通じて2020年から開発されており、それ以来大きく進歩しました。APIは当初、イングレスユースケース(昨年GAになりました)のみを対象としていましたが、常にクラスタ内のトラフィックにも同じAPIを使用できるようにすることを想定していました。

このリリースにより、そのビジョンが実現しました。Istioユーザーは、すべてのトラフィックに同じルーティングAPIを使用できるようになりました!

始め方

Istioのドキュメント全体で、Gateway APIの使用方法を示すすべての例が更新されているため、いくつかのタスクを調べて、より深い理解を得てください。

サービスメッシュのGateway APIの使用は、すでにイングレスにGateway APIを使用しているユーザーと、現在サービスメッシュにVirtualServiceを使用しているユーザーの両方にとって、なじみのあるものになるはずです。

リクエストヘッダーに基づいてサービスの2つの異なるバージョンへのリクエストをルーティングする方法を示す簡単な例を以下に示します。

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のトラフィックルーティング内部Gateway APIのサービスドキュメントを参照してください。

どのAPIを使用するべきか?

責任(と名前!)が重複しているため、どのAPIを使用するかを選択するのが少し混乱する可能性があります。

以下に概要を示します。

API名オブジェクトタイプステータス推奨事項
Gateway APIHTTPRouteGatewayなどGateway API v1.0(2023年)で安定版特にアンビエントモードで、新しいデプロイメントに使用します。
Istio APIVirtual ServiceGatewayIstio 1.22(2024年)でv1既存のデプロイメント、または高度な機能が必要な場合に使用します。
Ingress APIIngressKubernetes v1.19(2020年)で安定版レガシデプロイメントにのみ使用します。

上記を考慮すると、Istio APIが同時にv1に昇格した理由について疑問に思うかもしれません。これは、APIの *安定性* を正確に分類するための取り組みの一環でした。Gateway APIをトラフィックルーティングAPIの将来(そして現在!)と見なしていますが、既存のAPIは完全な互換性をもって長期的に存続します。これは、Gateway APIに向けた今後の作業を指示しながら、Ingressv1に昇格させたKubernetesのアプローチを反映しています。

コミュニティ

この安定版への昇格は、プロジェクト全体での数え切れないほどの時間と協業の成果です。APIに関与している組織のリストを見て、これまでにどれほど進歩してきたかを考えると驚くべきことです。

この取り組みにおける共同リーダーであるFlynn、Keith Mattix、Mike Morris、そして関わってくれた多くの人々に特別な感謝を述べたいと思います。

参加、フィードバックの提供にご興味のある方は、IstioのコミュニティページまたはGateway APIの貢献ガイドをご覧ください!

この記事を共有