Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Accéder aux services LLM via une passerelle d'entrée ASM

Dernière mise à jour :Aug 11, 2026

Service Mesh (ASM) vous permet d'accéder à des services externes de grands modèles de langage (LLM) via une passerelle d'entrée. En acheminant les requêtes via une passerelle ASM, vous bénéficiez de fonctionnalités avancées telles que le fractionnement du trafic, l'observabilité des requêtes, ainsi qu'une authentification et une autorisation robustes. Cette rubrique explique comment un client externe au cluster peut accéder à un service LLM externe via une passerelle d'entrée ASM.

Vue d'ensemble

L'accès aux services LLM externes via une passerelle d'entrée est idéal lorsque des clients situés hors du cluster doivent s'y connecter. La passerelle ASM offre une large gamme de fonctionnalités de routage, de sécurité et d'observabilité, et prend en charge la gestion du trafic LLM. Elle vous permet d'intégrer rapidement et en toute sécurité des services LLM externes.

Le cheminement de la requête pour l'exemple présenté dans cette rubrique est le suivant :

image

Prérequis

Étape 1 : Créer le LLMProvider

  1. Créez un fichier nommé LLMProvider.yaml avec le contenu suivant.

    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. Pour créer le LLMProvider, exécutez la commande suivante en utilisant le fichier kubeconfig de votre cluster ASM.

    kubectl apply -f LLMProvider.yaml

Étape 2 : Créer la règle de passerelle

  1. Créez un fichier nommé ingress-gw.yaml avec le contenu suivant.

    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. Exécutez la commande suivante pour créer la règle de passerelle.

    kubectl apply -f ingress-gw.yaml

Étape 3 : Créer le LLMRoute

  1. Créez un fichier nommé dashscope-route.yaml avec le contenu suivant.

    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. Exécutez la commande suivante pour créer le LLMRoute.

    kubectl apply -f dashscope-route.yaml

Étape 4 : Tester la configuration

Exécutez la commande suivante dans votre terminal local pour tester la configuration.

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

Résultat attendu :

{"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"}

Ce résultat indique que la passerelle a correctement acheminé la requête.

Étape 5 : Utiliser les fonctionnalités de sécurité de la passerelle ASM

Cette étape montre comment créer une politique d'autorisation simple pour refuser l'accès au service LLM depuis votre adresse IP locale via la passerelle ASM.

  1. Créez un fichier nommé auth-policy.yaml avec le contenu suivant.

    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. Exécutez la commande suivante pour déployer la politique d'autorisation.

    kubectl apply -f auth-policy.yaml
  3. Exécutez à nouveau la commande de test de l'étape 4. Le résultat suivant doit s'afficher :

    RBAC: access denied
Remarque

Les fonctionnalités de sécurité disponibles pour les requêtes HTTP standard sur la passerelle ASM, telles que les politiques d'autorisation complètes, l'authentification JWT et les services d'autorisation externes personnalisés, s'appliquent également aux requêtes LLM. En appliquant ces politiques à la passerelle d'entrée, vous renforcez la sécurité de vos applications.