全部產品
Search
文件中心

Container Service for Kubernetes:自訂推理擴充配置

更新時間:Aug 07, 2025

Gateway with Inference Extension基於推理擴充實現了針對產生式AI推理服務的一系列增強管理能力。您可以通過配置註解調整路由策略,或通過建立ConfigMap來修改或覆蓋擴充的部署配置。本文主要介紹如何通過增加註解和建立ConfigMap來修改推理擴充的部署配置。

功能介紹

在Gateway API Inference Extension中,InferencePool資源代表一組共用相同計算配置、加速器類型、基本模型和模型伺服器的Pod,在邏輯上對AI模型服務資源進行分組和管理。組件和InferencePool資源的綁定關係,可通過InferencePool資源上的註解對路由策略進行自訂配置,也可以通過部署自訂ConfigMap,來覆蓋推理擴充Deployment的部署配置。兩種方式有以下區別:

對比項

註解方式

ConfigMap方式

覆蓋範圍

支援變更負載平衡策略、請求排隊策略和推理架構及對應的策略配置參數。

可以完全覆蓋推理擴充的預設配置,包括Deployment、Service和PodDisruptionBudget。

更新方式

熱更新,即時生效。

熱更新,即時生效。

配置複雜度

與要修改的配置數量成正比。即覆蓋的配置越多,要增加的註解越多。

僅需要部署ConfigMap並為InferencePool增加epp-overlay的註解即可。後續變更可以直接通過更新ConfigMap完成。

組件版本依賴

支援所有版本。

需要組件版本在1.4.0-aliyun.2及以上。

若您只需要更新推理擴充的負載平衡策略或變更推理架構支援,推薦使用註解方式進行配置。若您需要對推理擴充進行更精細的配置調整,則推薦使用ConfigMap方式。

通過配置註解修改推理擴充路由策略

您可以通過為InferencePool資源增加inference.networking.x-k8s.io/routing-strategy註解,將推理擴充使用的負載平衡策略變更為首碼感知的負載平衡。樣本如下:

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

支援的配置註解說明

推理擴充支援通過InferencePool註解在多方面進行自訂配置,以下是支援的註解分類說明。

負載平衡策略

註解

類型

預設值

說明

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

string

DEFAULT

指定推理擴充使用的負載平衡策略,有兩種取值:

  • DEFAULT:預設的基於推理伺服器負載感知的負載平衡策略。

  • PREFIX_CACHE:在預設負載平衡策略基礎上,將共用同一首碼內容的請求儘可能發送到同一個推理伺服器Pod的負載平衡策略。

更多關於首碼感知的負載平衡,請參見使用智能推理路由實現首碼感知負載平衡

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

此參數用於限制推理請求隊列的總容量(即所有Prompt的位元組數之和)。

一旦隊列總大小超出此上限,最早進入的請求將被丟棄,以確保隊列不會因請求積壓而導致記憶體溢出。

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

Duration

30s

此參數用於佈建要求在隊列中的最大等待時間。等待時間超過該上限的請求將被丟棄,以避免用戶端無謂的等待並及時釋放系統資源。

說明

此參數的值是一個可能帶有符號的十進位數字序列,每個數字可以帶有可選的小數部分和單位尾碼,例如 "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。

更多資訊,請參見推理服務架構支援說明

使用 ConfigMap 管理推理擴充配置

重要

此方式依賴Gateway with Inference Extension組件版本在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

以下樣本展示具體的配置步驟。

  1. 建立並部署ConfigMap。

    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

    此ConfigMap修改了推理擴充的容器資源配置並加入了Pod的podAntiAffinity配置。

  2. 為InferencePool增加註解,指定應用自訂的配置ConfigMap,以對指定的推理擴充應用自訂覆蓋配置。

    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