マルチクラスタの Google Kubernetes Engine(GKE)推論ゲートウェイは、複数の GKE クラスタ間で AI/ML 推論ワークロードのロード バランシングを行います。GKE マルチクラスタ Gateway を統合して、クラスタ間のトラフィック ルーティングと AI/ML モデル提供用の Inference Gateway を実現します。この統合により、デプロイのスケーラビリティと高可用性が向上します。このドキュメントでは、ゲートウェイのコアコンセプトとメリットについて説明します。
マルチクラスタ GKE Inference Gateway のデプロイ方法の詳細については、GKE マルチクラスタ Inference Gateway を設定するをご覧ください。
このドキュメントを理解するには、次のことを理解しておく必要があります。
- GKE での AI / ML オーケストレーション。
- 生成 AI の用語。
- GKE ネットワーキングのコンセプト(Service、GKE マルチクラスタ ゲートウェイ、Gateway API など)。
- Google Cloudでのロード バランシング、特にロードバランサが GKE とやり取りする方法。
このドキュメントは、次のペルソナを対象としています。
- AI / ML ワークロードの提供に Kubernetes コンテナ オーケストレーション機能を使用することに関心をお持ちの ML エンジニア、プラットフォーム管理者 / オペレーター、データ / AI スペシャリスト。
- Kubernetes ネットワーキングを操作するクラウド アーキテクトまたはネットワーキング スペシャリスト。
Google Cloud のコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な GKE Enterprise ユーザーロールとタスクをご覧ください。
GKE マルチクラスタ推論ゲートウェイのメリット
マルチクラスタ GKE Inference Gateway には、AI/ML 推論ワークロードの管理に次のようなメリットがあります。
- 異なる地理的リージョン間を含め、複数の GKE クラスタ間でインテリジェントなロード バランシングを行うことで、高可用性とフォールト トレランスを強化します。推論ワークロードは引き続き利用可能であり、クラスタまたはリージョンで問題が発生した場合、システムはリクエストを自動的に再ルーティングするため、ダウンタイムを最小限に抑えることができます。
- さまざまなクラスタから GPU と TPU のリソースをプールして需要の増加に対応することで、スケーラビリティを向上させ、リソース使用量を最適化します。このプールにより、ワークロードは単一クラスタの容量を超えてバーストし、フリート全体で利用可能なリソースを効率的に使用できます。
- グローバルに最適化されたルーティングでパフォーマンスを最大化します。このゲートウェイは、すべてのクラスタの Key-Value(KV)キャッシュ使用率などの高度な指標を使用して、効率的なルーティングの決定を行います。このアプローチにより、リクエストを処理するのに最適なクラスタにリクエストが送信されるため、AI/ML 推論フリートの全体的なパフォーマンスを最大化できます。
制限事項
マルチクラスタ GKE Inference Gateway には次の制限があります。
Model Armor の統合: マルチクラスタ GKE Inference Gateway は、Model Armor の統合をサポートしていません。
Envoy プロキシのレイテンシ レポート: Envoy プロキシは、成功した(
2xx)リクエストのクエリ レイテンシのみを報告します。エラーとタイムアウトは無視されます。この動作により、グローバル サーバー ロードバランサ(GSLB)が、障害が発生したバックエンドの実際の負荷を過小評価し、過負荷状態のサービスにさらに多くのトラフィックを転送する可能性があります。この問題を軽減するには、リクエスト タイムアウトを大きく設定します。たとえば、600sの値をおすすめします。ネットワーク エンドポイント グループ(NEG)の上限:Google Cloud バックエンド サービスあたり 50 個の NEG の上限があります。マルチポート InferencePool を使用する場合、各ゾーンの各ポートは専用の NEG を作成します。たとえば、一般的なリージョン クラスタ(3 つのゾーン)に 8 つのポートを持つ InferencePool がある場合、24 個の NEG が生成されます。したがって、マルチクラスタ ゲートウェイは、50 個の NEG の上限に達する前に、最大 2 つのクラスタ(2 つのクラスタ × 24 個の NEG = 48 個の NEG)からこのような InferencePool を集約できます。
主要コンポーネント
マルチクラスタ GKE Inference Gateway は、いくつかの Kubernetes カスタム リソースを使用して、推論ワークロードとトラフィック ルーティングを管理します。
- InferencePool: ターゲット クラスタ内の同一のモデルサーバー バックエンドをグループ化します。このリソースにより、モデル サービング インスタンスの管理とスケーリングが簡素化されます。マルチポート InferencePool オブジェクトは、シングル クラスタとマルチクラスタのデプロイでサポートされています。
InferenceObjective: InferencePool 内の特定のモデルのルーティング優先度を定義します。このルーティングにより、要件に基づいて特定のモデルにトラフィックの優先順位が確実に付与されます。GCPInferencePoolImport: 構成クラスタでHTTPRouteを使用して、モデル バックエンドをルーティング構成で使用できるようにします。このリソースは、ターゲット クラスタから InferencePool をエクスポートすると、構成クラスタに自動的に作成されます。構成クラスタは、マルチクラスタ環境の中心的な制御ポイントとして機能します。GCPBackendPolicy: バックエンドへのトラフィックのロード バランシング方法をカスタマイズします。たとえば、カスタム指標に基づいてロード バランシングを有効にしたり、エンドポイントあたりの未処理リクエスト数に上限を設定してモデルサーバーを保護したりできます。AutoscalingMetric: モデルサーバーからエクスポートするカスタム指標(vllm:kv_cache_usage_percなど)を定義します。これらの指標をGCPBackendPolicyで使用すると、よりインテリジェントなロード バランシングの決定を行い、パフォーマンスとリソース使用率を最適化できます。
マルチクラスタ GKE Inference Gateway の仕組み
マルチクラスタ GKE Inference Gateway は、複数の GKE クラスタにデプロイされた AI/ML モデルへのトラフィックを管理して転送します。機能は次のとおりです。
- 一元化されたトラフィック管理: 専用の構成クラスタでトラフィック ルーティング ルールを定義します。構成クラスタは、マルチクラスタ環境の中心的な制御ポイントとして機能します。フリートのマルチクラスタ Ingress を有効にするときに、GKE クラスタを構成クラスタとして指定します。この一元管理アプローチにより、GKE クラスタのフリート全体でモデルにリクエストが転送される方法を一元的に管理できます。
- 柔軟なモデルのデプロイ: 実際の AI/ML モデルは、個別のターゲット クラスタで実行されます。この分離により、最も理にかなった場所にモデルをデプロイできます(データに近い場所や、特定のハードウェアを備えたクラスタなど)。
- モデルの簡単な統合: ターゲット クラスタにモデルをデプロイするときに、InferencePool を使用してサービング インスタンスをグループ化します。この InferencePool をエクスポートすると、構成クラスタで自動的にルーティングに使用できるようになります。
- インテリジェントなロード バランシング: ゲートウェイはトラフィックを分散するだけでなく、インテリジェントなルーティングの決定も行います。モデルサーバーのカスタム指標など、さまざまなシグナルを使用するように構成することで、ゲートウェイは受信リクエストが最適なクラスタまたはモデル インスタンスに送信されるようにします。これにより、パフォーマンスとリソース使用率を最大化できます。たとえば、Key-Value(KV)キャッシュ使用率などの指標に基づいて、使用可能な推論容量が最も多いクラスタにリクエストを転送できます。
次のステップ
- Gateway をデプロイするには、マルチクラスタ GKE Inference Gateway を設定するをご覧ください。
GCPBackendPolicyリソースでscopesフィールドを使用する方法については、GCPBackendPolicyスコープを使用してバックエンド構成をカスタマイズするをご覧ください。