All Products
Search
Document Center

Container Service for Kubernetes:Men-deploy layanan inferensi model KServe dalam mode serverless

Last Updated:Mar 26, 2026

KServe, sebelumnya dikenal sebagai KFServing, adalah layanan model dan mesin inferensi untuk lingkungan cloud-native yang mendukung automatic scaling, scale-to-zero, serta canary deployment. Topik ini menjelaskan cara menggunakan Service Mesh (ASM) dan Arena untuk men-deploy model KServe sebagai layanan inferensi dalam mode serverless.

Prasyarat

Sebelum memulai, pastikan Anda telah:

Langkah 1: Siapkan data model

Gunakan NAS atau Object Storage Service (OSS) untuk menyimpan data model. Untuk informasi selengkapnya, lihat Pasang volume NAS yang disediakan secara statis dan Gunakan volume yang disediakan secara statis dengan ossfs 1.0. Topik ini menggunakan NAS sebagai contoh.

1.1 Dapatkan titik pemasangan NAS

  1. Masuk ke Konsol File Storage NAS. Di panel navigasi kiri, pilih File System > File System List. Di bagian atas halaman, pilih wilayah tempat sistem file NAS berada.

  2. Pada halaman File System List, klik ID sistem file yang ingin Anda kelola. Di halaman detail, klik Mount Targets. Arahkan penunjuk ke image di kolom Mount Target untuk melihat titik pemasangan tersebut. Catat titik pemasangan dan perintah mount untuk digunakan nanti.

1.2 Konfigurasikan PV dan PVC

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, temukan kluster yang diinginkan lalu klik namanya. Di panel navigasi kiri, pilih Volumes > Persistent Volumes.

  3. Di pojok kanan atas halaman Persistent Volumes, klik Create.

  4. Pada dialog Create PV, konfigurasikan parameter berikut lalu klik Create untuk membuat persistent volume (PV) bernama training-data. Untuk parameter lainnya, lihat Pasang volume NAS yang disediakan secara statis.

    ParameterNilai
    PV TypeNAS
    Volume Nametraining-data
    Mount Target Domain NamePilih titik pemasangan dari langkah 1.1
  5. Di panel navigasi kiri, pilih Volumes > Persistent Volume Claims. Pada halaman Persistent Volume Claims, klik Create di pojok kanan atas.

  6. Pada dialog Create PVC, konfigurasikan parameter berikut lalu klik Create untuk membuat persistent volume claim (PVC) bernama training-data. Untuk parameter lainnya, lihat Pasang volume NAS yang disediakan secara statis.

    ParameterNilai
    PVC TypeNAS
    Nametraining-data
    Allocation ModeExisting Volumes
    Existing VolumesKlik Select PV untuk memilih PV yang telah Anda buat

1.3 Unduh data model ke sistem file NAS

  1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

  2. Pada halaman Clusters, klik nama kluster yang diinginkan. Di panel navigasi kiri, pilih Nodes > Nodes.

  3. Pada halaman Nodes, klik ID instans node yang ingin Anda kelola. Di halaman Instance Details, klik More > Workbench Remote Access, lalu klik Log in.

  4. Jalankan perintah mount dari langkah 1.1 untuk memasang sistem file NAS.

  5. Unduh model bloom-560m dari Hugging Face dan simpan di PVC pada path pvc://training-data/bloom-560m.

Langkah 2: Deploy layanan inferensi

  1. Periksa sumber daya GPU yang tersedia di kluster:

    arena top node

    Output yang diharapkan:

    NAME                       IPADDRESS      ROLE    STATUS  GPU(Total)  GPU(Allocated)
    cn-beijing.192.1xx.x.xx   192.1xx.x.xx   <none>  Ready   0           0
    cn-beijing.192.1xx.x.xx   192.1xx.x.xx   <none>  Ready   0           0
    cn-beijing.192.1xx.x.xx   192.1xx.x.xx   <none>  Ready   0           0
    cn-beijing.192.1xx.x.xx   192.1xx.x.xx   <none>  Ready   1           0
    cn-beijing.192.1xx.x.xx   192.1xx.x.xx   <none>  Ready   1           0
    ---------------------------------------------------------------------------------------------------
    Allocated/Total GPUs In Cluster:
    0/2 (0.0%)

    Output menunjukkan dua node berakselerasi GPU tersedia.

  2. Jalankan layanan inferensi bernama bloom-560m. PVC training-data dipasang ke /mnt/models di dalam kontainer, yaitu lokasi tempat model diunduh pada langkah 1.3.

    arena serve kserve \
        --name=bloom-560m \
        --image=ghcr.io/huggingface/text-generation-inference:1.0.2 \
        --gpus=1 \
        --cpu=6 \
        --memory=20Gi \
        --port=8080 \
        --env=STORAGE_URI=pvc://training-data \
        "text-generation-launcher --disable-custom-kernels --model-id /mnt/models/bloom-560m --num-shard 1 -p 8080"

    Output yang diharapkan:

    inferenceservice.serving.kserve.io/bloom-560m created
    INFO[0013] The Job bloom-560m has been submitted successfully
    INFO[0013] You can run `arena serve get bloom-560m --type kserve -n default` to check the job status

    Tabel berikut menjelaskan parameter-parameter tersebut.

    ParameterWajibDeskripsi
    --nameYaNama pekerjaan yang dikirimkan. Harus unik secara global.
    --imageYaAlamat gambar kontainer untuk layanan inferensi.
    --gpusTidakJumlah GPU yang dibutuhkan. Nilai default: 0.
    --cpuTidakJumlah CPU yang dibutuhkan.
    --memoryTidakJumlah memori yang dibutuhkan.
    --portTidakPort yang diekspos untuk akses eksternal.
    --envTidakVariabel lingkungan dalam bentuk pasangan kunci-nilai. Pada contoh ini, STORAGE_URI diatur agar mengarah ke PVC tempat model disimpan.

Langkah 3: Verifikasi layanan inferensi

  1. Periksa status penerapan layanan inferensi KServe:

    arena serve get bloom-560m

    Output yang diharapkan:

    Name:       bloom-560m
    Namespace:  default
    Type:       KServe
    Version:    00001
    Desired:    1
    Available:  1
    Age:        9m
    Address:    http://bloom-560m.default.example.com
    Port:       :80
    GPU:        1
    
    LatestRevision:     bloom-560m-predictor-00001
    LatestPrecent:      100
    
    Instances:
      NAME                                                   STATUS   AGE  READY  RESTARTS  GPU  NODE
      ----                                                   ------   ---  -----  --------  ---  ----
      bloom-560m-predictor-00001-deployment-ff4c49bf6-twrlp  Running  9m   2/2    0         1    cn-hongkong.192.1xx.x.xxx

    Output tersebut mengonfirmasi bahwa layanan inferensi telah diterapkan. Alamat akses model adalah http://bloom-560m.default.example.com.

  2. Dapatkan alamat IP gerbang masuk ASM. Untuk informasi selengkapnya, lihat Langkah 2: Dapatkan alamat IP gerbang masuk ASM.

  3. Kirim permintaan uji ke layanan inferensi menggunakan alamat IP gerbang masuk ASM:

    # Ganti ${ASM_GATEWAY} dengan alamat IP gerbang masuk ASM.
    curl -H "Host: bloom-560m.default.example.com" http://${ASM_GATEWAY}:80/generate \
        -X POST \
        -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":17}}' \
        -H 'Content-Type: application/json'

    Output yang diharapkan:

    {"generated_text":" Deep Learning is a new type of machine learning that is used to solve complex problems."}

Langkah 4: Perbarui layanan inferensi

Gunakan canary deployment untuk mengalihkan trafik secara bertahap ke versi model baru sebelum beralih sepenuhnya.

  1. Buat versi baru model dan salin file model di PVC ke path baru bloom-560m-v2.

  2. Deploy versi baru dengan 10% trafik dialihkan ke versi tersebut:

    arena serve update kserve \
        --name bloom-560m \
        --canary-traffic-percent=10 \
        "text-generation-launcher --disable-custom-kernels --model-id /mnt/models/bloom-560m-v2 --num-shard 1 -p 8080"
  3. Periksa status layanan inferensi:

    arena serve get bloom-560m

    Output yang diharapkan:

    Name:       bloom-560m
    Namespace:  default
    Type:       KServe
    Version:    00002
    Desired:    2
    Available:  2
    Age:        36m
    Address:    http://bloom-560m.default.example.com
    Port:       :80
    GPU:        2
    
    LatestRevision:     bloom-560m-predictor-00002
    LatestPrecent:      10
    PrevRevision:       bloom-560m-predictor-00001
    PrevPrecent:        90
    
    Instances:
      NAME                                                    STATUS   AGE  READY  RESTARTS  GPU  NODE
      ----                                                    ------   ---  -----  --------  ---  ----
      bloom-560m-predictor-00001-deployment-ff4c49bf6-twrlp   Running  36m  2/2    0         1    cn-hongkong.192.1xx.x.xxx
      bloom-560m-predictor-00002-deployment-5b7bb66cfb-nqprp  Running  6m   2/2    0         1    cn-hongkong.192.1xx.x.xxx

    Output tersebut menunjukkan 10% trafik dialihkan ke bloom-560m-predictor-00002 (versi baru) dan 90% ke bloom-560m-predictor-00001 (versi sebelumnya).

  4. Setelah versi baru lolos pengujian, alihkan seluruh trafik ke versi tersebut:

    arena serve update kserve \
        --name bloom-560m \
        --canary-traffic-percent=100

(Opsional) Langkah 5: Hapus layanan inferensi

Hapus layanan inferensi untuk melepaskan semua sumber daya GPU dan komputasi:

arena serve delete bloom-560m