全部产品
Search
文档中心

Container Service for Kubernetes:Menyebarkan LLM sebagai layanan inferensi elastis di kluster ACK Edge dalam lingkungan komputasi awan hibrid

更新时间:Jul 02, 2025

Ketika menggunakan model bahasa besar (LLM) untuk menyebarkan layanan inferensi elastis dalam lingkungan komputasi awan hibrid, distribusi lalu lintas yang tidak seimbang dapat menyebabkan masalah alokasi GPU di pusat data. Untuk mengatasi hal ini, kluster ACK Edge menawarkan solusi untuk menyebarkan LLM sebagai layanan inferensi elastis dalam lingkungan komputasi awan hibrid. Solusi ini membantu Anda mengelola sumber daya GPU di awan dan pusat data secara terpusat. Anda dapat mengonfigurasi bisnis agar lebih memprioritaskan penggunaan sumber daya di pusat data selama jam non-puncak dan meluncurkan sumber daya di awan selama jam puncak. Dengan demikian, biaya operasional layanan inferensi berbasis LLM dapat diminimalkan, serta pasokan sumber daya disesuaikan secara dinamis dan fleksibel, memastikan stabilitas layanan dan mencegah idle resources.

Ikhtisar Solusi

Arsitektur

Solusi ini dibangun berdasarkan kemampuan kolaborasi awan-tepi dari kluster ACK Edge. Anda dapat mengelola sumber daya komputasi di awan dan pusat data secara terpusat serta mengalokasikan sumber daya secara dinamis ke tugas komputasi. Setelah menyebarkan LLM sebagai layanan inferensi di kluster Anda, Anda dapat menggunakan KServe untuk mengonfigurasi kebijakan penskalaan layanan inferensi.

  • Selama jam non-puncak, buat ResourcePolicy di kluster Anda untuk mengaktifkan penjadwalan sumber daya berbasis prioritas bagi layanan inferensi. Berikan prioritas lebih tinggi pada sumber daya komputasi di pusat data dibandingkan dengan sumber daya di awan, sehingga layanan inferensi lebih memilih menggunakan sumber daya lokal.

  • Selama jam puncak, KServe memanfaatkan kemampuan pemantauan kluster ACK Edge untuk memantau pemanfaatan GPU dan status beban kerja secara real-time. Ketika kondisi penskalaan terpenuhi, KServe secara dinamis menambah jumlah pod tempat layanan inferensi diterapkan. Jika sumber daya GPU lokal tidak mencukupi, sistem mengalokasikan sumber daya GPU dari kelompok node elastis yang telah dikonfigurasi di awan kepada layanan inferensi, memastikan stabilitas dan kontinuitas layanan.

  1. Permintaan Inferensi: Sejumlah besar permintaan inferensi.

  2. Penjadwalan Sumber Daya: Sistem lebih memilih menjadwalkan layanan inferensi ke kolam sumber daya di pusat data.

  3. Penskalaan Keluar dengan Sumber Daya Awan: Ketika sumber daya di pusat data tidak mencukupi, sistem mengalokasikan sumber daya dari kelompok node elastis yang telah dikonfigurasi di awan kepada layanan inferensi.

Komponen Utama

Solusi ini mencakup komponen utama berikut: kluster ACK Edge, KServe, kelompok node elastis (penyesuaian otomatis node), dan ResourcePolicy (penjadwalan sumber daya berbasis prioritas).

Klik untuk Melihat Pengenalan Komponen Utama

Kluster ACK Edge

Kluster ACK Edge adalah kluster Kubernetes berbasis cloud-native yang berfungsi sebagai platform kolaborasi awan-tepi, di mana Anda dapat menghubungkan dan mengelola sumber daya serta layanan komputasi tepi secara terpadu.

KServe

KServe adalah platform layanan model open-source yang dirancang untuk menyederhanakan proses penerapan dan pengoperasian model pembelajaran mesin (ML) pada Kubernetes. KServe mendukung berbagai kerangka kerja ML dan menyediakan kemampuan penskalaan. Platform ini mempermudah konfigurasi dan manajemen layanan model melalui file YAML sederhana dan API deklaratif untuk penerapan serta manajemen model. Selain itu, KServe menyediakan serangkaian CustomResourceDefinitions (CRD) untuk mengelola dan menyampaikan layanan model ML.

Kelompok node elastis (penyesuaian otomatis node)

Penyesuaian Otomatis Node adalah fitur yang digunakan untuk menyesuaikan sumber daya komputasi dalam kluster secara otomatis. Fitur ini diimplementasikan berdasarkan komponen cluster-autoscaler, yang secara berkala memantau status kluster dan menyesuaikan node secara otomatis. Ketika pod tidak dapat dijadwalkan ke node, fitur ini mensimulasikan proses penjadwalan untuk memeriksa apakah aktivitas penskalaan keluar diperlukan. Jika diperlukan, kelompok node ditambahkan ke kluster untuk memenuhi persyaratan sumber daya pod, mencapai manajemen sumber daya yang efisien dan memastikan stabilitas aplikasi.

ResourcePolicy (penjadwalan sumber daya berbasis prioritas)

ResourcePolicy digunakan untuk mengonfigurasi penjadwalan sumber daya berbasis prioritas dalam kluster ACK Edge. Penjadwalan ini menyediakan pendekatan granular halus untuk skenario dengan beberapa jenis sumber daya. Anda dapat menggunakan ResourcePolicy untuk menentukan aturan penggunaan dan prioritas beberapa jenis sumber daya dalam urutan menurun, sehingga sistem menjadwalkan pod ke berbagai jenis node berdasarkan aturan tersebut.

Saat membuat pod, Anda dapat mengonfigurasi prioritas penjadwalan berdasarkan kebutuhan bisnis dan karakteristik sumber daya. Misalnya, Anda dapat mengonfigurasi sistem untuk lebih memilih menjadwalkan aplikasi komputasi-intensif ke node kinerja tinggi (HPC) dan aplikasi intensif data ke node dengan sumber daya penyimpanan yang kaya. Dalam hal ini, aplikasi komputasi-intensif memiliki prioritas penjadwalan lebih tinggi daripada aplikasi intensif data. Selama aktivitas penskalaan keluar, pod dihapus dari node dalam urutan prioritas menaik, dimulai dengan pod aplikasi intensif data.

Contoh

  1. Siapkan Lingkungan.

    1. Buat Kluster ACK Edge.

    2. Buat Kelompok Node Elastis.

    3. Instal KServer di Kluster ACK Edge.

    4. Konfigurasikan Klien Arena.

    5. Sebarkan Komponen Pemantauan dan Konfigurasikan Metrik GPU.

    Setelah menyelesaikan langkah-langkah di atas, klasifikasikan sumber daya dalam kluster menjadi tiga jenis dan tambahkan sumber daya ke kolam node berikut.

    Jenis

    Jenis kolam node

    Deskripsi

    Contoh

    Kolam sumber daya kontrol di awan

    Di awan

    Kolam node di awan yang digunakan untuk menyebarkan kluster ACK Edge dan komponen kontrol seperti KServe.

    default-nodepool

    Kolam sumber daya lokal

    Tepi/dedicated

    Sumber daya komputasi di pusat data yang digunakan untuk menampung layanan inferensi yang diterapkan menggunakan LLM.

    GPU-V100-Edge

    Kolam sumber daya elastis di awan

    Di awan

    Kolam sumber daya yang dapat diskalakan dapat menyesuaikan secara dinamis untuk memenuhi persyaratan sumber daya GPU kluster dan menampung layanan inferensi yang diterapkan menggunakan LLM selama jam puncak.

    GPU-V100-Elastic

  2. Siapkan Model AI.

    Gunakan Object Storage Service (OSS) atau File Storage NAS (NAS) untuk menyiapkan data model. Untuk informasi lebih lanjut, lihat Siapkan Data Model dan Unggah Data Model ke Bucket OSS.

  3. Tentukan Prioritas Sumber Daya.

    Buat ResourcePolicy untuk menentukan prioritas sumber daya. Dalam contoh ini, parameter labelSelector ResourcePolicy diatur ke app: isvc.qwen-predictor untuk memilih aplikasi yang akan diterapkan ResourcePolicy. ResourcePolicy berikut menentukan bahwa pod yang cocok dijadwalkan ke kolam sumber daya lokal terlebih dahulu. Ketika sumber daya lokal tidak mencukupi, sistem menjadwalkan pod yang cocok ke kolam sumber daya elastis di awan. Untuk informasi lebih lanjut tentang cara mengonfigurasi ResourcePolicy, lihat Konfigurasikan Penjadwalan Sumber Daya Berbasis Prioritas.

    Penting

    Saat membuat pod aplikasi selanjutnya, tambahkan label yang sesuai dengan labelSelector berikut untuk mengaitkannya dengan kebijakan penjadwalan yang didefinisikan di sini.

    apiVersion: scheduling.alibabacloud.com/v1alpha1
    kind: ResourcePolicy
    metadata:
      name: qwen-chat
      namespace: default
    spec:
      selector:
        app: isvc.qwen-predictor # Anda harus menentukan label pod yang ingin Anda terapkan ResourcePolicy.
      strategy: prefer
      units:
      - resource: ecs
        nodeSelector:
          alibabacloud.com/nodepool-id: npxxxxxx  # Ganti nilai dengan ID kolam sumber daya lokal.
      - resource: elastic
        nodeSelector:
          alibabacloud.com/nodepool-id: npxxxxxy  # Ganti nilai dengan ID kolam sumber daya di awan.
  4. Sebarkan LLM sebagai Layanan Inferensi.

    Jalankan perintah berikut pada klien Arena untuk menggunakan KServe menyebarkan layanan inferensi berbasis LLM.

     arena serve kserve \
        --name=qwen-chat \
        --image=kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/vllm:0.4.1 \
        --scale-metric=DCGM_CUSTOM_PROCESS_SM_UTIL \
        --scale-target=50 \
        --min-replicas=1  \
        --max-replicas=3  \
        --gpus=1 \
        --cpu=4  \
        --memory=12Gi \
        --data="llm-model:/mnt/models/Qwen" \
        "python3 -m vllm.entrypoints.openai.api_server --port 8080 --trust-remote-code --served-model-name qwen --model /mnt/models/Qwen --gpu-memory-utilization 0.95 --quantization gptq --max-model-len=6144"

    Parameter

    Diperlukan

    Deskripsi

    Contoh

    --name

    Ya

    Nama layanan inferensi, yang bersifat unik secara global.

    qwen-chat

    --image

    Ya

    Alamat gambar layanan inferensi. Dalam contoh ini, kerangka kerja inferensi virtual large language model (vLLM) digunakan.

    kube-ai-registry.cn-shanghai.cr.aliyuncs.com/kube-ai/vllm:0.4.1

    --scale-metric

    Tidak

    Metrik penskalaan. Dalam contoh ini, metrik pemanfaatan GPU DCGM_CUSTOM_PROCESS_SM_UTIL digunakan sebagai metrik penskalaan. Untuk informasi lebih lanjut, lihat Konfigurasikan HPA.

    DCGM_CUSTOM_PROCESS_SM_UTIL

    --scale-target

    Tidak

    Ambang penskalaan. Dalam contoh ini, ambang penskalaan adalah 50%. Ketika pemanfaatan GPU melebihi 50%, sistem menambah replika pod.

    50

    --min-replicas

    Tidak

    Jumlah minimum replika pod.

    1

    --max-replicas

    Tidak

    Jumlah maksimum replika pod.

    3

    --gpus

    Tidak

    Jumlah GPU yang diminta oleh layanan inferensi. Nilai default: 0.

    1

    --cpu

    Tidak

    Jumlah vCore yang diminta oleh layanan inferensi.

    4

    --memory

    Tidak

    Ukuran memori yang diminta oleh layanan inferensi.

    12Gi

    --data

    Tidak

    Alamat model layanan inferensi. Dalam contoh ini, volume model adalah llm-model, yang dipasang ke direktori /mnt/models/ container.

    "llm-model:/mnt/models/Qwen" \

    "python3 -m vllm.entrypoints.openai.api_server --port 8080 --trust-remote-code --served-model-name qwen --model /mnt/models/Qwen --gpu-memory-utilization 0.95 --quantization gptq --max-model-len=6144"

  5. Periksa Apakah Layanan Inferensi Elastis Diterapkan.

    curl -H "Host: qwen-chat-default.example.com" \ # Dapatkan alamat dari detail Ingress yang dibuat otomatis oleh KServe.
    -H "Content-Type: application/json"      \
    http://xx.xx.xx.xx:80/v1/chat/completions \
    -X POST      \
    -d '{"model": "qwen", "messages": [{"role": "user", "content": "Hello"}], "max_tokens": 512, "temperature": 0.7, "top_p": 0.9, "seed": 10, "stop":["<|endoftext|>", "<|im_end|>", "<|im_start|>"]}
  6. Gunakan alat uji stres hey untuk mengirim sejumlah besar permintaan ke layanan inferensi, mensimulasikan lonjakan lalu lintas selama jam puncak dan menguji peluncuran sumber daya di awan.

    hey -z 2m -c 5 \
    -m POST -host qwen-chat-default.example.com \
    -H "Content-Type: application/json" \
    -d '{"model": "qwen", "messages": [{"role": "user", "content": "Test"}], "max_tokens": 10, "temperature": 0.7, "top_p": 0.9, "seed": 10}' \
    http://xx.xx.xx.xx:80/v1/chat/completions

    Setelah permintaan dikirim ke pod, pemanfaatan GPU layanan inferensi melebihi ambang penskalaan (50%). Dalam hal ini, HPA menambah pod berdasarkan aturan penskalaan yang telah ditentukan sebelumnya. Gambar berikut menunjukkan bahwa jumlah pod untuk layanan inferensi meningkat menjadi tiga.11

    Namun, pusat data dalam lingkungan pengujian hanya menyediakan satu GPU. Akibatnya, dua pod baru yang dibuat tidak dapat dijadwalkan dan tetap dalam status pending. Dalam hal ini, cluster-autoscaler secara otomatis meluncurkan dua node GPU di awan untuk menampung dua pod pending.123

Referensi