全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Akses layanan LLM melalui gerbang masuk ASM

更新时间:Feb 28, 2026

Service Mesh (ASM) memungkinkan Anda mengakses layanan Large Language Model (LLM) eksternal melalui gerbang masuk (ingress gateway). Dengan mengarahkan permintaan melalui gerbang ASM, Anda dapat memanfaatkan fitur-fitur canggihnya, seperti pemisahan lalu lintas (traffic splitting), observabilitas permintaan, serta otentikasi dan otorisasi yang kuat. Topik ini menjelaskan cara klien di luar kluster mengakses layanan LLM eksternal melalui gerbang masuk ASM.

Ikhtisar

Mengakses layanan LLM eksternal melalui gerbang masuk sangat ideal ketika klien di luar kluster perlu terhubung ke layanan tersebut. Gerbang ASM menyediakan berbagai fitur perutean, keamanan, dan observabilitas, serta mendukung manajemen lalu lintas LLM. Dengan menggunakan gerbang ASM, Anda dapat mengintegrasikan layanan LLM eksternal secara cepat dan aman.

Jejak permintaan (request trace) untuk contoh dalam topik ini adalah sebagai berikut:

image

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 open-source series large language model
            stream: false
            apiKey: ${API_KEY}
  2. Untuk membuat LLMProvider, jalankan perintah berikut menggunakan File kubeconfig untuk kluster ASM Anda.

    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  # Routes requests for dashscope.aliyuncs.com. Otherwise, a 404 error is returned.
        - headers:
            host:
              exact: test.com # Routes requests for test.com. After the request is processed by the ASM LLM plugin, it re-triggers route matching, causing the request to match the rule above.
        backendRefs:
        - providerHost: dashscope.aliyuncs.com
  2. Jalankan perintah berikut untuk membuat LLMRoute.

    kubectl apply -f dashscope-route.yaml

Langkah 4: Uji konfigurasi

Jalankan perintah berikut di terminal lokal Anda untuk menguji konfigurasi.

curl --location '${INGRESS_GATEWAY_IP}:80' --header 'Content-Type: application/json' --header "host: test.com" --data '{
    "messages": [
        {"role": "user", "content": "Tell me about yourself"}
    ]
}'

Output yang diharapkan:

{"choices":[{"message":{"role":"assistant","content":"I am a Large Language Model from Alibaba Cloud, and my name is Qwen. My main function is to answer user questions, provide information, and engage in conversation. I can understand user queries and generate corresponding answers or suggestions based on natural language. I can also learn new knowledge and apply it to various scenarios. If you have any questions or need help, please feel free to let me know, and I will do my best to support you."},"finish_reason":"stop","index":0,"logprobs":null}],"object":"chat.completion","usage":{"prompt_tokens":3,"completion_tokens":72,"total_tokens":75},"created":1720682745,"system_fingerprint":null,"model":"qwen1.5-72b-chat","id":"chatcmpl-3d117bd7-9bfb-9121-9fc2-xxxxxxxxxxxx"}

Output tersebut menunjukkan bahwa gerbang berhasil mengarahkan permintaan.

Langkah 5: Gunakan fitur keamanan gerbang ASM

Langkah ini menunjukkan cara membuat kebijakan otorisasi sederhana untuk menolak akses ke layanan LLM dari alamat IP lokal Anda melalui gerbang ASM.

  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:
                  - ${YOUR_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 kembali perintah pengujian dari Langkah 4. Anda seharusnya melihat hasil berikut:

    RBAC: access denied
Catatan

Fitur keamanan yang tersedia untuk permintaan HTTP standar pada gerbang ASM, seperti kebijakan otorisasi komprehensif, otentikasi JWT, dan layanan otorisasi eksternal kustom, juga berlaku untuk permintaan LLM. Dengan menerapkan kebijakan ini pada gerbang masuk, Anda dapat mengamankan aplikasi Anda secara lebih efektif.