全部产品
Search
文档中心

Container Service for Kubernetes:Konfigurasi ekstensi inferensi kustom

更新时间:Sep 13, 2025

Gateway dengan Ekstensi Inferensi meningkatkan layanan inferensi AI generatif melalui kemampuan manajemen yang diperluas. Anda dapat menyesuaikan kebijakan perutean dengan menambahkan anotasi ke sumber daya InferencePool atau membuat ConfigMap untuk mengganti konfigurasi default. Topik ini menjelaskan cara menggunakan kedua metode tersebut.

Ikhtisar metode konfigurasi

Gateway dengan Ekstensi Inferensi terkait dengan sumber daya InferencePool, yang secara logis mengelompokkan dan mengelola sumber daya untuk layanan model AI. Anda dapat menyesuaikan kebijakan perutean untuk InferencePool dengan dua cara:

  1. Menggunakan Anotasi: Terapkan anotasi langsung ke sumber daya InferencePool.

  2. Menggunakan ConfigMap: Buat ConfigMap kustom dan hubungkan ke InferencePool.

Tabel berikut membandingkan kedua metode ini:

Aspek

Menggunakan Anotasi

Menggunakan ConfigMap

Cakupan

Memungkinkan Anda mengubah kebijakan penyeimbangan beban, strategi antrian permintaan, dan pengaturan kerangka kerja inferensi.

Memungkinkan Anda sepenuhnya mengganti konfigurasi default untuk ekstensi inferensi, termasuk Deployment, Service, dan PodDisruptionBudget.

Mekanisme Pembaruan

Pembaruan panas. Perubahan diterapkan secara dinamis dalam waktu nyata.

Pembaruan panas. Perubahan diterapkan dalam waktu nyata.

Kompleksitas

Sederhana untuk perubahan tunggal, tetapi berkembang sesuai dengan item konfigurasi. Memerlukan penambahan anotasi baru untuk setiap pengaturan yang ingin diubah.

Memerlukan pembuatan ConfigMap dan penambahan satu anotasi ke InferencePool. Semua perubahan selanjutnya dikelola dengan memperbarui file ConfigMap.

Persyaratan Versi

Semua versi didukung.

Membutuhkan Gateway dengan Ekstensi Inferensi versi 1.4.0-aliyun.2 atau lebih baru.

Rekomendasi: Gunakan anotasi untuk perubahan sederhana, seperti memperbarui kebijakan penyeimbangan beban atau kerangka kerja inferensi yang didukung. Gunakan ConfigMap untuk penyesuaian yang lebih canggih atau komprehensif.

Metode 1: Penyesuaian dengan anotasi

Anda dapat memodifikasi kebijakan perutean dengan menambahkan anotasi inference.networking.x-k8s.io/routing-strategy ke sumber daya InferencePool. Sebagai contoh, anotasi berikut mengubah kebijakan penyeimbangan beban menjadi prefix-aware:

apiVersion: inference.networking.x-k8s.io/v1alpha2
kind: InferencePool
metadata:
  name: vllm-app-pool
  annotations:
    # Set the load balancing policy to be prefix-aware
    inference.networking.x-k8s.io/routing-strategy: "PREFIX_CACHE" 
spec:
  targetPortNumber: 8000
  selector:
    app: vllm-app
  extensionRef:
    name: inference-gateway-ext-proc

Anotasi yang didukung

Tabel berikut menjelaskan anotasi yang didukung oleh Gateway dengan Ekstensi Inferensi:

Kebijakan penyeimbangan beban

Anotasi

Tipe

Nilai default

Deskripsi

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

string

DEFAULT

Menentukan kebijakan penyeimbangan beban yang digunakan oleh ekstensi inferensi. Nilai valid:

  • DEFAULT: Kebijakan penyeimbangan beban default yang sadar akan beban server inferensi.

  • PREFIX_CACHE: Kebijakan penyeimbangan beban yang, berdasarkan kebijakan penyeimbangan beban default, mengirimkan permintaan yang memiliki konten awalan yang sama ke pod server inferensi yang sama jika memungkinkan.

Untuk informasi lebih lanjut tentang penyeimbangan beban yang sadar akan awalan, lihat Gunakan perutean inferensi cerdas untuk menerapkan penyeimbangan beban yang sadar akan awalan.

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

int64

64

Saat menggunakan penyeimbangan beban yang sadar akan awalan, ekstensi inferensi membagi permintaan menjadi blok berukuran tetap dan mencocokkannya dengan awalan dalam cache.

Parameter ini menentukan panjang string dari setiap blok. Untuk penyeimbangan beban optimal, sesuaikan nilai ini agar sesuai dengan kebijakan pemisahan blok internal server model.

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

int64

128

Parameter ini membatasi jumlah maksimum blok awalan yang dapat dicocokkan oleh satu permintaan.

Jika jumlah kecocokan aktual melebihi batas ini, sistem memproses permintaan berdasarkan batas dan mengabaikan bagian kecocokan tambahan.

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

int64

50000

Parameter ini menentukan jumlah maksimum blok yang dapat dimiliki oleh satu catatan awalan dalam cache.

Perhatikan bahwa semakin besar nilainya, semakin banyak memori yang dibutuhkan oleh cache.

Antrian permintaan

Anotasi

Tipe

Nilai default

Deskripsi

inference.networking.x-k8s.io/queueing

string

disabled

Menentukan apakah fitur antrian permintaan inferensi diaktifkan. Untuk informasi lebih lanjut tentang fitur antrian permintaan inferensi, lihat Gunakan perutean inferensi cerdas untuk menerapkan antrian permintaan inferensi dan penjadwalan prioritas.

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

int64

104857600

Parameter ini membatasi kapasitas total antrian permintaan inferensi (jumlah byte dari semua prompt).

Jika ukuran total antrian melebihi batas ini, permintaan paling awal dibuang untuk mencegah overflow memori akibat backlog permintaan.

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

Duration

30s

Parameter ini menentukan waktu maksimum permintaan dapat menunggu dalam antrian. Permintaan yang menunggu lebih lama dari batas ini dibuang untuk mencegah klien menunggu tanpa perlu dan melepaskan sumber daya sistem secara tepat waktu.

Catatan

Nilai parameter ini adalah urutan angka desimal bertanda, masing-masing dengan pecahan opsional dan akhiran unit, seperti "300ms", "-1.5h", atau "2h45m". Unit waktu yang valid adalah "ns", "us" (atau "µs"), "ms", "s", "m", dan "h".

Dukungan kerangka kerja inferensi

Anotasi

Tipe

Nilai default

Deskripsi

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

string

vllm

Mendeklarasikan kerangka kerja inferensi server model di backend InferencePool untuk memungkinkan ekstensi inferensi mendukung kerangka kerja inferensi tertentu. Nilai valid:

  • vllm: untuk vLLM v0 dan vLLM v1.

  • sglang: untuk SGlang.

  • trt-llm: untuk Triton yang menggunakan backend inferensi TensorRT-LLM.

Untuk informasi lebih lanjut, lihat Dukungan kerangka kerja layanan inferensi.

Metode 2: Penyesuaian dengan ConfigMap

Penting

Metode ini memerlukan Gateway dengan Ekstensi Inferensi versi 1.4.0-aliyun.2 atau lebih baru.

Ekstensi inferensi dan gateway diterapkan di namespace envoy-gateway-system. Anda dapat menemukan sumber daya terkait mereka menggunakan pemilih label. Sebagai contoh, untuk menemukan deployment ekstensi inferensi deployment untuk InferencePool bernama qwen-pool di namespace default, jalankan perintah berikut:

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

Ikuti langkah-langkah berikut untuk menerapkan konfigurasi kustom menggunakan ConfigMap:

  1. Buat dan terapkan ConfigMap.

    Contoh ConfigMap berikut mengganti konfigurasi sumber daya kontainer default dan menambahkan aturan 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. Tambahkan anotasi ke InferencePool Anda untuk menentukan nama ConfigMap yang berisi konfigurasi kustom Anda.

    apiVersion: inference.networking.x-k8s.io/v1alpha2
    kind: InferencePool
    metadata:
      annotations:
        inference.networking.x-k8s.io/epp-overlay: custom-epp # Tentukan konfigurasi override untuk ekstensi inferensi
      name: qwen-pool
    spec:
      extensionRef:
        group: ''
        kind: Service
        name: qwen-ext-proc
      selector:
        app: qwen
      targetPortNumber: 8000