Tous les produits
Search
Centre de documentation

Alibaba Cloud Service Mesh:Use Knative on ASM to deploy a serverless application

Dernière mise à jour :Aug 11, 2026

Service Mesh (ASM) s'intègre étroitement aux fonctionnalités du composant Knative Serving déployé dans un cluster Container Service for Kubernetes (ACK) ou un cluster ACK Serverless. Cette intégration simplifie le déploiement et la gestion des applications serverless dans divers environnements de cluster. Knative on ASM offre une solution tout-en-un qui vous permet de créer, déployer et gérer rapidement des applications conteneurisées, en particulier lorsque vous avez besoin d'une mise à l'échelle automatique et d'une facturation à la demande. Cette solution facilite le déploiement et la mise à l'échelle rapides des applications serverless, améliorant ainsi l'efficacité du développement et l'élasticité des services. Cette rubrique décrit comment utiliser Knative sur ASM pour déployer un service Knative.

Prérequis

  • Vous avez créé une instance ASM de version 1.16.3.50 ou ultérieure et ajouté un cluster ACK ou ACK Serverless cluster à l'instance. Pour plus d'informations, consultez les rubriques Créer une instance ASM et Ajouter un cluster à une instance ASM.

    Important
    • Lors de la création d'une instance ASM, assurez-vous que l'option Allow data plane cluster KubeAPI to access Istio CR est sélectionnée dans la section Resource configuration. Cette case est cochée par défaut. Cela signifie que vous pouvez accéder aux ressources Istio via l'API Kubernetes des clusters du plan de données.

    • L'accès au serveur API du cluster ACK ou ACK Serverless cluster est activé pour prendre en charge un accès rapide.

    • L'instance ASM et le cluster ACK ou ACK Serverless cluster doivent se trouver dans le même réseau privé virtuel (VPC) de la même région et utiliser le même vSwitch.

  • Vous avez créé une passerelle ingress pour le cluster. Dans l'exemple suivant, une passerelle ingress ASM est utilisée. Pour plus d'informations, consultez la rubrique Créer une passerelle ingress.

    Remarque
    • La création manuelle de passerelles ingress n'est plus nécessaire pour les instances ASM de version 1.21.6.84 ou ultérieure.

    • La passerelle ASM vous permet de répartir le trafic entre différentes révisions Knative, d'accéder aux services Google Remote Procedure Call (gRPC), de configurer les paramètres de délai d'expiration et de nouvelle tentative, de monter des certificats Transport Layer Security (TLS) et d'effectuer une authentification et une autorisation externes. Pour plus d'informations, consultez la rubrique Passerelles ASM.

Étape 1 : Installer Knative

Pour une instance ASM dont la version est antérieure à 1.18.2.104

  1. Déployez le composant Knative Serving dans le cluster ACK ou ACK Serverless. Sélectionnez Kourier pour le paramètre Gateway.

    • Pour savoir comment déployer Knative dans un cluster ACK, consultez la rubrique Déployer et gérer les composants Knative.

    • Pour savoir comment déployer Knative dans un cluster ACK Serverless, consultez la rubrique Déployer Knative.

      Important

      Une fois le composant Knative Serving installé, cliquez sur l'onglet Components. Dans la section Add-on Component, désinstallez le composant Kourier.

  2. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.

  3. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez Ecosystem > Knative on ASM.

  4. Sur la page Knative on ASM, cliquez sur Enable Knative on ASM.

Pour une instance ASM dont la version est comprise entre 1.18.2.104 et 1.21.6.83

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM. Dans le volet de navigation de gauche, choisissez Ecosystem > Knative on ASM.

  3. Sur la page Knative on ASM, sélectionnez une version Knative adaptée à vos besoins métier, puis cliquez sur Enable Knative on ASM.

  4. Déployez Knative dans le cluster ACK ou ACK Serverless. Sélectionnez ASM pour le paramètre Gateway.

Pour une instance ASM dont la version est 1.21.6.84 ou ultérieure

Important

Si la version de votre instance ASM est 1.21.6.84 ou ultérieure, vous n'avez pas besoin d'activer la fonctionnalité Knative on ASM dans la console ASM.

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom du cluster que vous souhaitez gérer. Ensuite, dans le volet de navigation de gauche, choisissez Applications > Knative.

  3. Sur l'onglet Components de la page Knative, cliquez sur Deploy Knative. Dans la section Gateway, cliquez sur l'onglet ASM, puis sur Deploy.

    Une fois Knative installé, vous pouvez utiliser ASM dans Knative.

    Remarque

    Une fois le message confirmant l'installation de Knative affiché, assurez-vous que la passerelle ingress est créée et fonctionne correctement avant de procéder au déploiement d'un service Knative.

Étape 2 : Déployer un service Knative

Knative on ASM vous permet de déployer un service Knative via la console ACK ou à l'aide d'un fichier de configuration YAML. Choisissez la méthode de déploiement qui correspond le mieux à vos besoins.

Méthode 1 : Déployer un service Knative via la console ACK

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Knative.

  3. Sur la page Knative, cliquez sur l'onglet Services. En haut à droite, cliquez sur Create Service, spécifiez les paramètres requis, puis cliquez sur Create.

    Pour plus d'informations sur les paramètres, consultez la rubrique Démarrage rapide : Déployer un service Knative.

    Paramètre

    Description

    Exemple

    Namespace

    Sélectionnez le namespace auquel appartient le service.

    default

    Service Name

    Saisissez un nom pour le service.

    helloworld-go

    Image Name

    Pour sélectionner une image, cliquez sur Select Image. Dans la boîte de dialogue Select Image, sélectionnez une image et cliquez sur OK. Vous pouvez spécifier une image située dans un registre privé. L'adresse de l'image doit respecter le format domainname/namespace/imagename:tag.

    registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go

    Image Version

    Pour sélectionner une version d'image, cliquez sur Select Image Version. Dans la boîte de dialogue Image Version, sélectionnez une version d'image et cliquez sur OK.

    73fbdd56

    Access Protocol

    Les protocoles HTTP et gRPC sont pris en charge.

    HTTP

    Container Port

    Spécifiez le port de conteneur que vous souhaitez exposer. Le numéro de port doit être compris entre 1 et 65535.

    8080

    Environment Variables

    Cliquez sur Advanced. Dans la section Environment Variables, cliquez sur Add pour définir des variables d'environnement sous forme de paires clé-valeur.

    Type : Sélectionnez Custom.

    Variable Key : Définissez la valeur sur TARGET.

    Value/ValueFrom : Définissez la valeur sur Knative.

Méthode 2 : Déployer un service Knative à l'aide d'un fichier de configuration YAML

  1. Enregistrez le contenu suivant dans un fichier nommé helloworld-go.yaml.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
      annotations:
        knative.k8s.alibabacloud/tls: "false"
    spec:
      template:
        spec:
          containers:
            - image: registry.cn-hangzhou.aliyuncs.com/acs/helloworld-go:160e4dc8
              ports:
                - containerPort: 8080
              env:
                - name: TARGET
                  value: "Knative"
  2. Utilisez kubectl pour vous connecter au cluster ACK. Exécutez la commande suivante pour créer un service Knative. Attendez que le service Knative soit créé.

    kubectl apply -f helloworld-go.yaml
  3. Exécutez la commande suivante pour afficher la liste des services Knative :

    kubectl get ksvc

    Le système affiche des informations similaires à la sortie suivante :

    NAME            URL                                        LATESTCREATED         LATESTREADY           READY   REASON
    helloworld-go   http://helloworld-go.default.example.com   helloworld-go-00001   helloworld-go-00001   True

Méthode 3 : Utiliser un modèle pour créer un service Knative

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom du cluster que vous souhaitez gérer. Ensuite, dans le volet de navigation de gauche, choisissez Applications > Knative.

  3. Sur l'onglet Services de la page Knative, sélectionnez default dans la liste déroulante Namespace, cliquez sur Create from Template, copiez le contenu YAML suivant dans l'éditeur de code, puis cliquez sur Create pour créer un service nommé helloworld-go.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: helloworld-go
    spec:
      template:
        spec:
          containers:
          - image: registry.cn-hangzhou.aliyuncs.com/knative-sample/helloworld-go:73 fbdd56 # Replace {REGION-ID} with the region where your cluster resides. 
            env:
            - name: TARGET
              value: "Knative"

Étape 3 : Obtenir l'adresse de la passerelle

Méthode 1 : Obtenir l'adresse de la passerelle via la console ACK

  1. Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Applications > Knative.

  3. Cliquez sur l'onglet Services. Dans la liste des services, cliquez sur le nom du service Knative dont vous souhaitez obtenir l'adresse de la passerelle pour afficher les détails du service. Dans la section Basic Information, vous pouvez consulter et récupérer les informations relatives aux champs Gateway et Default Domain.

Méthode 2 : Obtenir l'adresse de la passerelle via la console ASM

  1. Connectez-vous à la console ASM. Dans le volet de navigation de gauche, choisissez Service Mesh > Mesh Management.

  2. Sur la page Mesh Management, cliquez sur le nom de l'instance ASM souhaitée. Dans le volet de navigation de gauche, choisissez ASM Gateways > Ingress Gateway.

  3. Dans la section Service address de la page Ingress Gateway, consultez et notez l'adresse de la passerelle.

Étape 4 : Accéder au service Knative

Une fois le service Knative déployé, vous pouvez faire pointer son nom de domaine vers l'adresse IP d'une passerelle pour associer le service à la passerelle. Cela vous permet d'accéder au service Knative via son URL.

  1. Sur la page Services, obtenez l'adresse de la passerelle du service helloworld-go dans la colonne Gateway.

  2. Exécutez la commande suivante pour accéder au service helloworld-go :

    curl -H "host: helloworld-go.default.example.com" http://39.XX.XX.XX # Replace the IP address and domain name with the actual values.

    Sortie attendue :

    Hello Knative!

    Cette sortie indique que l'accès au service a réussi.

Voir aussi

  • Le nom de domaine par défaut d'un service Knative est example.com. Knative on ASM vous permet d'utiliser un nom de domaine personnalisé comme domaine par défaut. Pour plus d'informations, consultez la rubrique Définir un nom de domaine personnalisé dans Knative on ASM.

  • Une passerelle ASM prend en charge HTTPS et permet de charger dynamiquement des certificats. Lorsque vous utilisez Knative on ASM, vous pouvez utiliser une passerelle ASM pour accéder au service Knative via HTTPS. Pour plus d'informations, consultez la rubrique Accéder à un service Knative via HTTPS avec une passerelle ASM.

  • Knative on ASM vous permet d'effectuer un déploiement canari basé sur la répartition du trafic pour un service Knative. Lors de la création d'un service Knative, Knative crée automatiquement la première révision du service. Chaque fois que la configuration du service Knative change, Knative crée une nouvelle révision et modifie le pourcentage de trafic distribué aux différentes révisions pour mettre en œuvre un déploiement canari. Pour plus d'informations, consultez la rubrique Effectuer un déploiement canari basé sur la répartition du trafic pour un service Knative à l'aide de Knative on ASM.

  • Knative Serving ajoute le conteneur Queue Proxy à chaque pod. Le conteneur Queue Proxy envoie les métriques de simultanéité des conteneurs d'application à Knative Pod Autoscaler (KPA). Une fois que KPA a reçu les métriques, il ajuste automatiquement le nombre de pods provisionnés pour un Deployment en fonction du nombre de requêtes simultanées et des algorithmes de mise à l'échelle automatique associés. Pour plus d'informations, consultez la rubrique Mettre à l'échelle automatiquement les services en fonction du trafic.