All Products
Search
Document Center

Alibaba Cloud Service Mesh:Percepat penyajian AI dengan KServe, Fluid, dan ASM

Last Updated:Jul 30, 2026

KServe, sebelumnya bernama KFServing, adalah mesin penyajian dan inferensi model AI untuk lingkungan cloud-native yang mendukung fitur seperti autoscaling, scale-to-zero, dan penerapan canary. Alibaba Cloud Service Mesh (ASM) terintegrasi dengan komponen Knative Serving dan menyediakan KServe on ASM, memungkinkan penyiapan KServe untuk penyajian AI hanya dalam satu klik. Fluid adalah orchestrator dan akselerator dataset terdistribusi open-source yang native untuk Kubernetes, dirancang khusus untuk aplikasi intensif data seperti beban kerja big data dan AI. Anda dapat mengintegrasikan langsung KServe on ASM dengan Fluid untuk mempercepat proses pemuatan model. Topik ini menjelaskan cara menggunakan KServe dan Fluid pada ASM guna mempercepat akses data untuk penyajian AI.

Prasyarat

  • Kluster Kubernetes telah ditambahkan ke instans ASM. Untuk informasi selengkapnya, lihat Buat instans ASM dan Tambahkan kluster ke instans ASM.

    Catatan
    • Instans ASM harus versi 1.17 atau lebih baru. Untuk informasi tentang cara melakukan upgrade instans, lihat Upgrade instans ASM.

    • Persyaratan kluster Kubernetes:

      • Kluster ACK harus versi 1.22 atau lebih baru. Untuk informasi selengkapnya, lihat Buat kluster ACK yang dikelola atau Upgrade kluster ACK. Jika Anda menggunakan graphics processing unit (GPU) untuk menjalankan layanan AI, kluster ACK harus berisi node berakselerasi GPU, seperti ecs.gn6i-c16g1.4xlarge.

      • Kluster ACK Serverless harus versi 1.18 atau lebih baru, dan komponen CoreDNS telah diinstal. Untuk informasi selengkapnya, lihat Buat kluster ACK Serverless dan Kelola komponen.

  • Akses resource Istio melalui API Kubernetes dari kluster bidang data harus diaktifkan untuk instans ASM. Untuk informasi selengkapnya, lihat Gunakan API Kubernetes kluster bidang data untuk mengakses resource Istio.

  • Gerbang masuk (ingress gateway) telah dibuat untuk kluster. Topik ini menggunakan gerbang masuk ASM bernama ingressgateway yang membuka port 80 dan 443. Untuk informasi selengkapnya, lihat Buat gerbang masuk.

  • Komponen Knative Serving telah diterapkan di kluster ACK atau kluster ACK Serverless, dan Knative on ASM telah diaktifkan. Untuk informasi selengkapnya, lihat Gunakan Knative on ASM untuk menerapkan aplikasi serverless.

    Terapkan Knative Serving

    Catatan

    Jika Anda memilih Kourier sebagai gerbang layanan untuk penerapan Knative satu klik, uninstall komponen Kourier setelah instalasi selesai. Untuk melakukannya, buka halaman Clusters di konsol ACK, klik kluster target, lalu pilih Applications > Knative. Setelah Anda memilih Kourier sebagai gerbang dan komponen terinstal, buka tab Komponen dan uninstall komponen Kourier di bagian Add-on Komponen.

    Aktifkan Knative on ASM

    1. Login ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    2. Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Ecosystem > Knative on ASM.

    3. Di halaman Knative on ASM, klik Enable Knative on ASM.

  • Layanan Penyimpanan Objek (OSS) telah diaktifkan dan bucket telah dibuat. Untuk informasi selengkapnya, lihat Aktifkan OSS dan Buat bucket.

Langkah 1: Aktifkan KServe on ASM

  1. Login ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih Ecosystem > KServe on ASM.

  3. Di halaman KServe on ASM, aktifkan atau nonaktifkan sakelar Automatically install the CertManager component in the cluster, lalu klik Enable KServe on ASM.

    cert-manager adalah sistem manajemen siklus hidup sertifikat yang mengotomatiskan penerbitan dan penerapan sertifikat. KServe on ASM bergantung pada komponen cert-manager. Saat Anda menginstal KServe, komponen cert-manager akan diinstal secara otomatis.

    • Jika cert-manager belum diinstal di kluster Anda, aktifkan sakelar Automatically install the CertManager component in the cluster.

    • Jika cert-manager sudah diinstal di kluster bidang data Anda, nonaktifkan sakelar Automatically install the CertManager component in the cluster.

Langkah 2: Instal Fluid dan percepat caching

  1. Terapkan komponen ack-fluid versi 0.9.10 atau lebih baru di kluster Anda.

    • Jika kluster bidang data Anda adalah kluster ACK, instal suite AI cloud-native dan terapkan komponen ack-fluid.

      Catatan

      Jika Anda telah menginstal Fluid versi open-source, uninstall terlebih dahulu sebelum menerapkan komponen ack-fluid.

      • Jika Anda belum menginstal suite AI cloud-native, aktifkan Fluid Data Acceleration saat instalasi. Untuk informasi selengkapnya, lihat Terapkan suite AI cloud-native.

      • Jika Anda telah menginstal suite AI cloud-native, login ke Konsol ACK. Buka halaman Applications > Cloud-native AI Suite dan terapkan ack-fluid.

    • Jika kluster bidang data Anda adalah kluster ACK Serverless, terapkan komponen ack-fluid. Untuk informasi selengkapnya, lihat bagian Terapkan komponen lapisan kontrol Fluid dalam topik Percepat akses data untuk aplikasi Job.

  2. Siapkan model AI dan unggah ke bucket OSS.

    1. Siapkan data dari model AI yang telah dilatih.

      Topik ini menggunakan model BLOOM, yaitu model bahasa besar (LLM) open-source berbasis Transformer yang dibangun di atas PyTorch, sebagai contoh. Untuk informasi lebih lanjut tentang data model tersebut, lihat Hugging Face.

    2. Unggah file data model yang telah diunduh ke bucket OSS dan catat jalur penyimpanannya.

      Format jalur penyimpanan adalah oss://{bucket}/{path}. Misalnya, jika Anda membuat bucket bernama fluid-demo dan mengunggah semua file data model ke direktori models/bloom di dalamnya, maka jalur penyimpanannya adalah oss://fluid-demo/models/bloom.

      Catatan

      Anda dapat menggunakan ossutil, tool klien yang disediakan oleh OSS, untuk mengunggah data. Untuk informasi selengkapnya, lihat Instal ossutil.

  3. Buat namespace untuk cache Fluid dan layanan AI, serta konfigurasikan izin akses OSS.

    1. Gunakan kubectl untuk menghubungkan ke kluster bidang data. Untuk informasi selengkapnya, lihat Hubungkan ke kluster ACK menggunakan kubectl.

    2. Jalankan perintah berikut untuk membuat namespace kserve-fluid-demo untuk cache Fluid dan layanan AI KServe:

      kubectl create ns kserve-fluid-demo
    3. Buat file bernama oss-secret.yaml dengan konten berikut.

      Field fs.oss.accessKeyId dan fs.oss.accessKeySecret adalah ID AccessKey dan rahasia untuk mengakses OSS.

      apiVersion: v1
      kind: Secret
      metadata:
        name: access-key
      stringData:
        fs.oss.accessKeyId: xxx # Ganti dengan ID AccessKey Alibaba Cloud yang dapat mengakses OSS.
        fs.oss.accessKeySecret: xxx # Ganti dengan rahasia AccessKey yang sesuai.
    4. Jalankan perintah berikut untuk menerapkan Secret dan mengonfigurasi kredensial akses OSS:

      kubectl apply -f oss-secret.yaml -n kserve-fluid-demo
  4. Deklarasikan data model AI yang akan diakses di Fluid.

    Kirimkan custom resource (CR) Dataset dan CR JindoRuntime. CR Dataset mendefinisikan URL data di sistem penyimpanan eksternal, sedangkan CR JindoRuntime menjelaskan sistem caching beserta konfigurasinya.

    1. Buat file bernama oss-jindo.yaml dengan konten berikut.

      Pada CR Dataset, ganti oss://{bucket}/{path} dengan jalur penyimpanan data model yang telah Anda catat di langkah 2.b, dan ganti {endpoint} dengan endpoint OSS. Untuk informasi tentang endpoint OSS di berbagai wilayah, lihat Wilayah dan endpoint.

      oss-jindo.yaml

      apiVersion: data.fluid.io/v1alpha1
      kind: Dataset
      metadata:
        name: oss-data
      spec:
        mounts:
        - mountPoint: "oss://{bucket}/{path}" # Ganti dengan jalur penyimpanan file data model.
          name: bloom-560m
          path: /bloom-560m
          options:
            fs.oss.endpoint: "{endpoint}"  # Ganti dengan endpoint OSS yang sebenarnya.
          encryptOptions:
            - name: fs.oss.accessKeyId
              valueFrom:
                secretKeyRef:
                  name: access-key
                  key: fs.oss.accessKeyId
            - name: fs.oss.accessKeySecret
              valueFrom:
                secretKeyRef:
                  name: access-key
                  key: fs.oss.accessKeySecret
        accessModes:
          - ReadOnlyMany
      ---
      apiVersion: data.fluid.io/v1alpha1
      kind: JindoRuntime
      metadata:
        name: oss-data
      spec:
        replicas: 2
        tieredstore:
          levels:
            - mediumtype: SSD
              volumeType: emptyDir
              path: /mnt/ssd0/cache
              quota: 50Gi
              high: "0.95"
              low: "0.7"
        fuse:
          properties:
            fs.jindofsx.data.cache.enable: "true"
          args:
            - -okernel_cache
            - -oro
            - -oattr_timeout=7200
            - -oentry_timeout=7200
            - -ometrics_port=9089
          cleanPolicy: OnDemand
      
    2. Jalankan perintah berikut untuk menerapkan CR Dataset dan JindoRuntime:

      kubectl create -f oss-jindo.yaml -n kserve-fluid-demo
    3. Jalankan perintah berikut untuk memeriksa status penerapan Dataset dan JindoRuntime:

      kubectl get jindoruntime,dataset -n kserve-fluid-demo

      Output yang diharapkan:

      NAME                                  MASTER PHASE   WORKER PHASE   FUSE PHASE   AGE
      jindoruntime.data.fluid.io/oss-data   Ready          Ready          Ready        3m
      
      NAME                             UFS TOTAL SIZE   CACHED   CACHE CAPACITY   CACHED PERCENTAGE   PHASE   AGE
      dataset.data.fluid.io/oss-data   3.14GiB          0.00B    100.00GiB        0.0%                Bound   3m

      Output menunjukkan bahwa PHASE Dataset adalah Bound dan FUSE PHASE JindoRuntime adalah Ready, yang mengindikasikan penerapan berhasil.

  5. Lakukan pra-ambil (prefetch) data dengan Fluid untuk meningkatkan kinerja akses.

    1. Buat file bernama oss-dataload.yaml dengan konten berikut:

      apiVersion: data.fluid.io/v1alpha1
      kind: DataLoad
      metadata:
        name: oss-dataload
      spec:
        dataset:
          name: oss-data
          namespace: kserve-fluid-demo
        target:
          - path: /bloom-560m
            replicas: 2
    2. Jalankan perintah berikut untuk menerapkan CR DataLoad dan melakukan pra-ambil data:

      kubectl create -f oss-dataload.yaml -n kserve-fluid-demo
    3. Jalankan perintah berikut untuk memeriksa progres pra-ambil data:

      kubectl get dataload -n kserve-fluid-demo

      Output yang diharapkan:

      NAME           DATASET    PHASE      AGE     DURATION
      oss-dataload   oss-data   Complete   1m      45s

      Output menunjukkan bahwa pra-ambil data membutuhkan waktu sekitar 45s. Anda harus menunggu hingga proses selesai.

Langkah 3: Terapkan layanan inferensi

  1. Buat file bernama oss-fluid-isvc.yaml berdasarkan jenis kluster Anda.

    Kluster ACK

    apiVersion: "serving.kserve.io/v1beta1"
    kind: "InferenceService"
    metadata:
      name: "fluid-bloom"
    spec:
      predictor:
        timeout: 600
        minReplicas: 0
        containers:
          - name: kserve-container
            image: registry.cn-hangzhou.aliyuncs.com/acs/kserve-fluid:bloom-gpu
            resources:
              limits:
                cpu: "12"
                memory: 48Gi
                nvidia.com/gpu: 1 # Jika Anda menggunakan GPU, tentukan jumlah yang diperlukan. Jika tidak, field ini dapat dihilangkan.
              requests:
                cpu: "12"
                memory: 48Gi
            env:
              - name: STORAGE_URI
                value: "pvc://oss-data/bloom-560m"
              - name: MODEL_NAME
                value: "bloom"
                # Atur parameter ini ke "True" jika Anda menggunakan GPU. Jika tidak, atur ke "False".
              - name: GPU_ENABLED
                value: "True"

    Kluster ACK Serverless

    apiVersion: "serving.kserve.io/v1beta1"
    kind: "InferenceService"
    metadata:
      name: "fluid-bloom"
      labels:
        alibabacloud.com/fluid-sidecar-target: "eci"
      annotations:
        k8s.aliyun.com/eci-use-specs : "ecs.gn6i-c16g1.4xlarge"  # Ganti dengan tipe instans ECS yang diinginkan.
        knative.aliyun.com/reserve-instance-eci-use-specs: "ecs.gn6i-c16g1.4xlarge"   # Ganti dengan tipe instans ECS yang diinginkan.
    spec:
      predictor:
        timeout: 600
        minReplicas: 0
        containers:
          - name: kserve-container
            image: registry.cn-hangzhou.aliyuncs.com/acs/kserve-fluid:bloom-gpu
            resources:
              limits:
                cpu: "12"
                memory: 48Gi
              requests:
                cpu: "12"
                memory: 48Gi
            env:
              - name: STORAGE_URI
                value: "pvc://oss-data/bloom-560m"
              - name: MODEL_NAME
                value: "bloom"
                # Atur parameter ini ke "True" jika Anda menggunakan GPU. Jika tidak, atur ke "False".
              - name: GPU_ENABLED
                value: "True"
    Catatan
    • Contoh ini menggunakan model bahasa besar dan meminta sumber daya signifikan (12 core CPU, memori 48 GiB). Sesuaikan field resources dalam konfigurasi InferenceService berdasarkan beban kerja kluster Anda.

    • Contoh ini mengatur field image ke contoh gambar registry.cn-hangzhou.aliyuncs.com/acs/kserve-fluid:bloom-gpu. Gambar ini menyediakan antarmuka untuk pemuatan model dan inferensi. Lihat kode untuk contoh gambar ini di komunitas open-source KServe untuk menyesuaikan gambar Anda sendiri. Untuk informasi selengkapnya, lihat contoh Docker KServe di sini.

  2. Jalankan perintah berikut untuk menerapkan layanan inferensi model AI:

    kubectl create -f oss-fluid-isvc.yaml -n kserve-fluid-demo
  3. Jalankan perintah berikut untuk memeriksa status penerapan layanan inferensi model AI:

    kubectl get inferenceservice -n kserve-fluid-demo

    Output yang diharapkan:

    NAME          URL                                                READY   PREV   LATEST   PREVROLLEDOUTREVISION   LATESTREADYREVISION           AGE
    fluid-bloom   http://fluid-bloom.kserve-fluid-demo.example.com   True           100                              fluid-bloom-predictor-00001   2d

    Saat field READY menampilkan True, layanan inferensi model AI telah berhasil diterapkan.

Langkah 4: Akses layanan inferensi

  1. Dapatkan alamat gerbang masuk ASM.

    1. Login ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

    2. Di halaman Mesh Management, klik nama instans ASM. Di panel navigasi kiri, pilih ASM Gateways > Ingress Gateway.

    3. Di bagian Service Address gerbang ingressgateway, lihat dan salin alamat layanan gerbang ASM.

  2. Jalankan perintah berikut untuk mengakses layanan inferensi model AI contoh, bloom. Ganti {ASM gateway service address} dengan alamat gerbang masuk ASM yang Anda peroleh di langkah sebelumnya.

    curl -v -H "Content-Type: application/json" -H "Host: fluid-bloom.kserve-fluid-demo.example.com" "http://{ASM gateway service address}:80/v1/models/bloom:predict" -d '{"prompt": "It was a dark and stormy night", "result_length": 50}'

    Output yang diharapkan:

    *   Trying xxx.xx.xx.xx :80...
    * Connected to xxx.xx.xx.xx  (xxx.xx.xx.xx ) port 80 (#0)
    > POST /v1/models/bloom:predict HTTP/1.1
    > Host: fluid-bloom-predictor.kserve-fluid-demo.example.com
    > User-Agent: curl/7.84.0
    > Accept: */*
    > Content-Type: application/json
    > Content-Length: 65
    > 
    * Mark bundle as not supporting multiuse
    < HTTP/1.1 200 OK
    < content-length: 227
    < content-type: application/json
    < date: Thu, 20 Apr 2023 09:49:00 GMT
    < server: istio-envoy
    < x-envoy-upstream-service-time: 1142
    < 
    {
      "result": "It was a dark and stormy night, and the wind was blowing in the\ndirection of the west. The wind was blowing in the direction of the\nwest, and the wind was blowing in the direction of the west. The\nwind was"
    }
    * Connection # 0 to host xxx.xx.xx.xx left intact

    Output menunjukkan bahwa layanan inferensi model AI berhasil menghasilkan teks berdasarkan input contoh dan mengembalikan hasil inferensi.

Topik terkait