全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Klien eksternal mengakses layanan LLM melalui gateway ingress ASM

更新时间:Jul 02, 2025

Alibaba Cloud Service Mesh (ASM) memungkinkan akses ke layanan LLM eksternal melalui gateway ingress ASM, menawarkan fitur seperti pemisahan lalu lintas, observabilitas permintaan, serta otentikasi dan otorisasi menyeluruh. Topik ini menjelaskan cara klien eksternal terhubung ke layanan LLM melalui gateway ingress ASM.

Ikhtisar

Gateway ingress ASM memfasilitasi akses ke layanan LLM eksternal, ideal untuk skenario yang melibatkan koneksi klien eksternal. Gateway ASM menyediakan fitur perutean tingkat lanjut, keamanan, observabilitas, dan manajemen lalu lintas LLM, sehingga memungkinkan akses yang efisien dan aman ke layanan LLM eksternal.

Jejak permintaan adalah sebagai berikut:

Prasyarat

Langkah 1: Buat LLMProvider

  1. Buat file bernama LLMProvider.yaml dengan konten berikut.

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: LLMProvider
    metadata:  
      name: dashscope-qwen
      namespace: istio-system
    spec:
      workloadSelector:
        labels:
          istio: ingressgateway
      host: dashscope.aliyuncs.com
      path: /compatible-mode/v1/chat/completions
      configs:
        defaultConfig:
          openAIConfig:
            model: qwen1.5-72b-chat  # Qwen LLM sumber terbuka
            stream: false
            apiKey: ${API_KEY}
  2. Jalankan perintah berikut untuk membuat LLMProvider menggunakan file kubeconfig kluster pada bidang data.

    kubectl apply -f LLMProvider.yaml

Langkah 2: Buat aturan gateway

  1. Buat file bernama ingress-gw.yaml dengan konten berikut.

    apiVersion: networking.istio.io/v1beta1
    kind: Gateway
    metadata:
      name: ingress-gw
      namespace: istio-system
    spec:
      selector:
        istio: ingressgateway
      servers:
        - hosts:
            - '*'
          port:
            name: http
            number: 80
            protocol: HTTP
  2. Jalankan perintah berikut untuk membuat aturan gateway.

    kubectl apply -f ingress-gw.yaml

Langkah 3: Buat LLMRoute

  1. Buat file bernama dashscope-route.yaml dengan konten berikut.

    apiVersion: istio.alibabacloud.com/v1beta1
    kind: LLMRoute
    metadata:  
      name: dashscope-route
    spec:
      host: "*"
      gateways:
      - istio-system/ingress-gw
      rules:
      - name: ingress-route
        matches:
        - headers:
            host:
              exact: dashscope.aliyuncs.com  # Proses permintaan yang dirutekan ke dashscope.aliyuncs.com, jika tidak 404 dikembalikan.
        - headers:
            host:
              exact: test.com # Proses permintaan yang dirutekan ke test.com. Setelah permintaan diproses oleh Plugin LLM ASM, aturan pencocokan rute dipicu ulang dan kondisi pencocokan sebelumnya terpenuhi.
        backendRefs:
        - providerHost: dashscope.aliyuncs.com
  2. Jalankan perintah berikut untuk membuat LLMRoute.

    kubectl apply -f dashscope-route.yaml

Langkah 4: Verifikasi

Jalankan perintah berikut secara lokal.

curl --location '${ASM Gateway IP}:80' \
--header 'Content-Type: application/json' \
--header "host: test.com" \
--data '{
    "messages": [
        {"role": "user", "content": "Silakan perkenalkan diri Anda"}
    ]
}'

Output yang diharapkan:

{"choices":[{"message":{"role":"assistant","content":"Halo! Saya adalah Qwen, model bahasa pra-latih yang dikembangkan oleh Alibaba Cloud. Tujuan saya adalah membantu pengguna dalam menghasilkan berbagai jenis teks, seperti artikel, cerita, puisi, dan menjawab pertanyaan dengan memanfaatkan pengetahuan luas dan pemahaman konteks saya. Meskipun saya adalah AI, saya tidak memiliki tubuh fisik atau pengalaman pribadi seperti manusia, tetapi saya telah dilatih pada kumpulan data teks yang sangat besar, yang memungkinkan saya terlibat dalam percakapan, memberikan informasi, atau membantu berbagai tugas sebaik mungkin. Jadi, jangan ragu untuk bertanya apa saja, dan saya akan berusaha memberikan tanggapan yang membantu dan informatif!"},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":12,"completion_tokens":130,"total_tokens":142},"created":1720682745,"system_fingerprint":null,"model":"qwen1.5-72b-chat","id":"chatcmpl-3608dcd5-e3ad-9ade-bc70-xxxxxxxxxxxxxx"}%   

Output menunjukkan bahwa jejak permintaan telah berhasil dibuat.

Langkah 5: Gunakan kemampuan keamanan gateway ASM

Langkah ini melibatkan pembuatan kebijakan otorisasi sederhana untuk memblokir akses ke layanan LLM melalui gateway ASM dari IP lokal tertentu.

  1. Buat file bernama auth-policy.yaml dengan konten berikut.

    apiVersion: security.istio.io/v1beta1
    kind: AuthorizationPolicy
    metadata:
      labels:
        gateway: ingressgateway
      name: auth-policy
      namespace: istio-system
    spec:
      action: DENY
      rules:
        - from:
            - source:
                ipBlocks:
                  - ${Local IP}
          to:
            - operation:
                hosts:
                  - test.com
      selector:
        matchLabels:
          istio: ingressgateway
  2. Jalankan perintah berikut untuk menerapkan kebijakan otorisasi.

    kubectl apply -f auth-policy.yaml
  3. Jalankan ulang perintah uji di Langkah 4, dan output ditampilkan sebagai:

    RBAC: akses ditolak
Catatan

Kemampuan keamanan gateway ASM yang dikonfigurasikan untuk permintaan HTTP reguler juga berlaku untuk permintaan LLM. Kemampuan ini mencakup kebijakan otorisasi, autentikasi JWT, dan layanan otorisasi kustom. Menerapkan kebijakan ini pada gateway egress dapat secara signifikan meningkatkan keamanan aplikasi Anda.