すべてのプロダクト
Search
ドキュメントセンター

Container Service for Kubernetes:カスタム推論拡張機能の設定

最終更新日:Sep 13, 2025

推論拡張機能付きゲートウェイは、拡張管理機能を通じて生成 AI 推論サービスを強化します。InferencePool リソースにアノテーションを追加するか、ConfigMap を作成してデフォルトのデプロイメント設定をオーバーライドすることで、ルーティングポリシーをカスタマイズできます。このトピックでは、両方の方法を使用して推論拡張機能をカスタマイズする方法について説明します。

設定方法の概要

推論拡張機能付きゲートウェイは InferencePool リソースに関連付けられており、AI モデルサービスのリソースを論理的にグループ化して管理します。InferencePool のルーティングポリシーは、次の 2 つの方法でカスタマイズできます。

  1. アノテーションの使用: 特定のアノテーションを InferencePool リソースに直接適用します。

  2. ConfigMap の使用: カスタム ConfigMap を作成し、InferencePool にリンクします。

次の表は、これら 2 つの方法を比較したものです。

側面

アノテーションの使用

ConfigMap の使用

スコープ

負荷分散ポリシー、リクエストキューイング戦略、および推論フレームワークの設定を変更できます。

Deployment、Service、PodDisruptionBudget など、推論拡張機能のデフォルト設定を完全にオーバーライドできます。

更新メカニズム

ホットアップデート。変更はリアルタイムで動的に適用されます。

ホットアップデート。変更はリアルタイムで適用されます。

複雑さ

単一の変更にはシンプルですが、設定項目に応じてスケールします。変更したい設定ごとに新しいアノテーションを追加する必要があります。

ConfigMap を作成し、InferencePool に 1 つのアノテーションを追加する必要があります。その後のすべての変更は、ConfigMap ファイルを更新することで管理されます。

バージョン要件

すべてのバージョンがサポートされています。

推論拡張機能付きゲートウェイのバージョン 1.4.0-aliyun.2 以降が必要です。

推奨事項: 負荷分散ポリシーやサポートされている推論フレームワークの更新など、単純な変更にはアノテーションを使用します。より高度で包括的なカスタマイズには ConfigMap を使用します。

方法 1:アノテーションによるカスタマイズ

inference.networking.x-k8s.io/routing-strategy アノテーションを InferencePool リソースに追加することで、ルーティングポリシーを変更できます。たとえば、次のアノテーションは、負荷分散ポリシーをプレフィックス認識に変更します。

apiVersion: inference.networking.x-k8s.io/v1alpha2
kind: InferencePool
metadata:
  name: vllm-app-pool
  annotations:
    # 負荷分散ポリシーをプレフィックス認識に設定
    inference.networking.x-k8s.io/routing-strategy: "PREFIX_CACHE" 
spec:
  targetPortNumber: 8000
  selector:
    app: vllm-app
  extensionRef:
    name: inference-gateway-ext-proc

サポートされているアノテーション

次の表は、推論拡張機能付きゲートウェイでサポートされているアノテーションを示しています。

負荷分散ポリシー

アノテーション

タイプ

デフォルト値

説明

inference.networking.x-k8s.io/routing-strategy

string

DEFAULT

推論拡張機能が使用する負荷分散ポリシーを指定します。有効な値:

  • DEFAULT:推論サーバーの負荷を認識するデフォルトの負荷分散ポリシー。

  • PREFIX_CACHE:デフォルトの負荷分散ポリシーに基づいて、同じプレフィックスコンテンツを共有するリクエストを可能な限り同じ推論サーバーポッドに送信する負荷分散ポリシー。

プレフィックス認識の負荷分散の詳細については、「インテリジェントな推論ルーティングを使用してプレフィックス認識の負荷分散を実装する」をご参照ください。

inference-epp-env.networking.x-k8s.io/prefix-cache-hash-block-size

int64

64

プレフィックス認識の負荷分散を使用する場合、推論拡張機能はリクエストを固定サイズのブロックに分割し、キャッシュ内のプレフィックスと照合します。

このパラメーターは、各ブロックの文字列の長さを指定します。最適な負荷分散のためには、モデルサーバーの内部ブロックスプリットポリシーに合わせてこの値を調整してください。

inference-epp-env.networking.x-k8s.io/prefix-cache-max-prefix-blocks

int64

128

このパラメーターは、単一のリクエストが一致できるプレフィックスブロックの最大数を制限します。

実際の一致数がこの制限を超えた場合、システムは制限に基づいてリクエストを処理し、余分な一致部分は無視します。

inference-epp-env.networking.x-k8s.io/prefix-cache-lru-capacity

int64

50000

このパラメーターは、キャッシュ内の単一のプレフィックスレコードが含むことができるブロックの最大数を指定します。

値が大きいほど、キャッシュに必要なメモリが多くなることに注意してください。

リクエストキューイング

アノテーション

タイプ

デフォルト値

説明

inference.networking.x-k8s.io/queueing

string

disabled

推論リクエストキューイング機能を有効にするかどうかを指定します。推論リクエストキューイング機能の詳細については、「インテリジェントな推論ルーティングを使用して推論リクエストのキューイングと優先度スケジューリングを実装する」をご参照ください。

inference-epp-env.networking.x-k8s.io/total-queue-capacity

int64

104857600

このパラメーターは、推論リクエストキューの総容量 (すべてのプロンプトのバイト数の合計) を制限します。

キューの合計サイズがこの制限を超えると、リクエストのバックログによるメモリオーバーフローを防ぐために、最も古いリクエストが破棄されます。

inference-epp-env.networking.x-k8s.io/queue-ttl

Duration

30s

このパラメーターは、リクエストがキューで待機できる最大時間を指定します。この制限を超えて待機するリクエストは、クライアントが不必要に待機するのを防ぎ、システムリソースをタイムリーに解放するために破棄されます。

説明

このパラメーターの値は、符号付き 10 進数のシーケンスで、それぞれにオプションの小数と単位サフィックス (「300ms」、「-1.5h」、「2h45m」など) が付きます。有効な時間単位は、「ns」、「us」(または「µs」)、「ms」、「s」、「m」、「h」です。

推論フレームワークのサポート

アノテーション

タイプ

デフォルト値

説明

inference.networking.x-k8s.io/model-server-runtime

string

vllm

InferencePool のバックエンドにあるモデルサーバーの推論フレームワークを宣言して、推論拡張機能が特定の推論フレームワークをサポートできるようにします。有効な値:

  • vllm:vLLM v0 および vLLM v1 用。

  • sglang:SGlang 用。

  • trt-llm:TensorRT-LLM 推論バックエンドを使用する Triton 用。

詳細については、「推論サービスフレームワークのサポート」をご参照ください。

方法 2:ConfigMap によるカスタマイズ

重要

この方法には、推論拡張機能付きゲートウェイ バージョン 1.4.0-aliyun.2 以降が必要です。

推論拡張機能とゲートウェイは、envoy-gateway-system 名前空間にデプロイされます。ラベルセレクターを使用して、関連するリソースを見つけることができます。たとえば、default 名前空間にある qwen-pool という名前の InferencePool の推論拡張機能 deployment を見つけるには、次のコマンドを実行します。

kubectl get deployments -n envoy-gateway-system -l inference-pool=qwen-pool,inference-pool-namespace=default

ConfigMap を使用してカスタム設定を適用するには、次の手順に従います。

  1. ConfigMap を作成してデプロイします。

    次の ConfigMap は、デフォルトのコンテナーリソース設定をオーバーライドし、podAntiAffinity ルールを追加します。

    apiVersion: v1
    data:
      deployment: |- 
        spec:
          replicas: 1
          template:
            spec:
              affinity:
                podAntiAffinity:
                  preferredDuringSchedulingIgnoredDuringExecution:
                  - weight: 100
                    podAffinityTerm:
                      labelSelector:
                        matchLabels:
                          inference-pool: qwen-pool
                          inference-pool-namespace: default
                      topologyKey: kubernetes.io/hostname
              containers:
                - name: inference-gateway-ext-proc
                  resources:
                    limits:
                      cpu: '4'
                      memory: 4G
                    requests:
                      cpu: 500m
                      memory: 1G
    kind: ConfigMap
    metadata:
      name: custom-epp
  2. カスタム設定を含む ConfigMap の名前を指定するために、InferencePool にアノテーションを追加します。

    apiVersion: inference.networking.x-k8s.io/v1alpha2
    kind: InferencePool
    metadata:
      annotations:
        inference.networking.x-k8s.io/epp-overlay: custom-epp # 推論拡張機能のオーバーライド設定を指定
      name: qwen-pool
    spec:
      extensionRef:
        group: ''
        kind: Service
        name: qwen-ext-proc
      selector:
        app: qwen
      targetPortNumber: 8000