2.12. OpenShift Container Platform のネットワーク機能を備えたゲートウェイ API
OpenShift Container Platform では、Ingress Operator で Gateway API を使用することにより、ネットワークトラフィックを設定するための追加の方法が提供されます。
Gateway API はユーザー定義ネットワーク (UDN) をサポートしていません。
2.12.1. Gateway API の概要 リンクのコピーリンクがクリップボードにコピーされました!
OpenShift Container Platform でネットワークトラフィック管理を最適化し、ルーティングポリシーを実装するには、Gateway API を使用します。このコミュニティー主導の Kubernetes メカニズムを採用することで、トランスポート層 (L4) とアプリケーション層 (L7) の両方で高度なルーティングを設定できるだけでなく、様々なベンダーがサポートする実装を活用して、特定のネットワーク要件を満たすことができます。
このプロジェクトは、幅広いコミュニティーのサポートを受けた移植可能な API を使用して、標準化されたエコシステムを提供するための取り組みです。Gateway API 機能を Ingress Operator に統合することで、既存のコミュニティーとアップストリーム開発の取り組みに沿ったネットワークソリューションが可能になります。
Gateway API は Ingress Operator の機能を拡張し、よりきめ細かいクラスタートラフィックとルーティング設定を処理します。これらの機能を利用することで、Gateway API のカスタムリソース定義 (CRD) のインスタンスを作成できます。OpenShift Container Platform クラスターの場合、Ingress Operator は次のリソースを作成します。
- Gateway
- このリソースでは、トラフィックをクラスター内のサービスに変換する方法を説明します。たとえば、特定のロードバランサー設定などです。
- GatewayClass
-
このリソースは、共通の設定と動作を共有する
Gatewayオブジェクトのセットを定義します。たとえば、パブリックアプリケーションまたはプライベートアプリケーションに使用されるGatewayリソースのセットを区別するために、2 つの個別のGatewayClassオブジェクトが作成される場合があります。 - HTTPRoute
- このリソースは、Gateway からサービスへの HTTP 要求のルーティング動作を指定し、HTTP 接続または終了した HTTPS 接続を多重化する場合に特に役立ちます。
- GRPCRoute
- このリソースは、gRPC リクエストのルーティング動作を指定します。
- ReferenceGrant
- このリソースは、namespace 間の参照を可能にします。たとえば、ルートが別の namespace にあるバックエンドにトラフィックを転送できるようになります。
OpenShift Container Platform では、Gateway API の実装は gateway.networking.k8s.io/v1 に基づいており、このバージョンのすべてのフィールドがサポートされています。
Gateway API は、リソース管理においてロールベースのアプローチを採用しています。次の図は、ペルソナと、ゲートウェイ などの前述のリソースとの相互関係を示しています。
図2.4 Gateway API の例を示す図
2.12.1.1. Gateway API の利点 リンクのコピーリンクがクリップボードにコピーされました!
Gateway API には次の利点があります。
-
移植性: OpenShift Container Platform は Ingress のパフォーマンスを向上させるために HAProxy を使用しますが、Gateway API は特定の動作を提供するためにベンダー固有のアノテーションに依存することはありません。HAProxy と同等のパフォーマンスを得るには、
Gatewayオブジェクトを水平方向にスケーリングするか、関連するノードを垂直方向にスケーリングする必要があります。 -
関心の分離: Gateway API は、そのリソースに対してロールベースのアプローチを採用しています。これにより、大規模な組織における責任分担やチーム体制と、よりうまく適合します。プラットフォームエンジニアは
GatewayClassリソースに、クラスター管理者はGatewayリソースの設定に、アプリケーション開発者はHTTPRouteリソースを使用したサービスのルーティングにそれぞれ注力する可能性がある。 - 拡張性: 追加機能は標準化された CRD として開発されます。
2.12.1.2. Gateway API の制限 リンクのコピーリンクがクリップボードにコピーされました!
Gateway API には次の制限があります。
- バージョンの非互換性: Gateway API エコシステムは急速に変化しており、一部の実装は、その機能セットが異なるバージョンの Gateway API に基づいているため、他の実装と連携しません。
- リソースのオーバーヘッド: より柔軟ではありますが、Gateway API は結果を達成するために複数のリソースタイプを使用します。小規模なアプリケーションの場合、従来の Ingress のシンプルさがより適している可能性があります。