Déployer l'exemple d'application Boutique en ligne

Ce guide explique comment installer l'exemple d'application Online Boutique consacré à Anthos Service Mesh. Si vous n'avez pas installé Anthos Service Mesh, consultez la section Guides d'installation pour choisir le guide qui vous convient.

Activer l'injection side-car automatique

Pour activer l'injection side-car automatique (injection automatique) pour l'exemple d'application, vous devez ajouter un libellé de révision à l'espace de noms de l'exemple. Le libellé que vous ajoutez varie selon que vous avez déployé Anthos Service Mesh géré ou installé le plan de contrôle dans le cluster. Le libellé de révision est utilisé par le webhook d'injecteur side-car pour associer les side-cars injectés à une révision du plan de contrôle particulière.

Dans le cluster

  1. Créez un espace de noms pour l'application :

    kubectl create namespace demo
    
  2. Exécutez la commande suivante pour localiser le libellé de révision sur istiod :

    kubectl -n istio-system get pods -l app=istiod --show-labels
    

    La sortie ressemble à ceci :

    NAME                                READY   STATUS    RESTARTS   AGE   LABELS
    istiod-asm-1106-2-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-1106-2-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1106-2,istio=istiod,pod-template-hash=5788d57586

    Dans le résultat, sous la colonne LABELS, notez la valeur du libellé de révision istiod, qui suit le préfixe istio.io/rev=. Dans cet exemple, la valeur est asm-1106-2.

  3. Appliquez le libellé de révision à l'espace de noms demo. Dans la commande suivante, REVISION correspond à la valeur du libellé de révision istiod que vous avez notée à l'étape précédente.

    kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
    

    Vous pouvez ignorer le message "istio-injection not found" dans le résultat. Cela signifie que l'espace de noms ne portait pas précédemment le libellé istio-injection, auquel on s'attend dans de nouvelles installations d'Anthos Service Mesh ou de nouveaux déploiements. Étant donné que l'injection automatique échoue si un espace de noms possède à la fois le istio-injection et le libellé de révision, toutes les commandes kubectl label de la documentation Anthos Service Mesh incluent la suppression du libellé istio-injection.

Maillage de services géré

  1. Créez un espace de noms pour l'application :

    kubectl create namespace demo
    
  2. Appliquez le libellé de révision asm-managed-rapid à l'espace de noms demo :

    kubectl label namespace demo istio-injection- istio.io/rev=asm-managed-rapid --overwrite
    

    Ce libellé correspond à la version disponible d'Anthos Service Mesh géré pour la version d'Anthos Service Mesh.

    Vous pouvez ignorer le message "istio-injection not found" dans le résultat. Cela signifie que l'espace de noms ne portait pas précédemment le libellé istio-injection, auquel on s'attend dans de nouvelles installations d'Anthos Service Mesh ou de nouveaux déploiements. Étant donné que l'injection automatique échoue si un espace de noms possède à la fois le istio-injection et le libellé de révision, toutes les commandes kubectl label de la documentation Anthos Service Mesh incluent la suppression du libellé istio-injection.

  3. Si vous avez également déployé le plan de données géré par Google facultatif, annotez l'espace de noms demo comme suit :

    kubectl annotate --overwrite namespace YOUR_NAMESPACE \
    mesh.cloud.google.com/proxy='{"managed":"true"}'
    

Télécharger et déployer l'exemple

Maintenant que l'injection automatique est activée sur l'espace de noms demo, lorsque vous déployez les services de l'application BookInfo, les proxys side-car sont injectés avec chaque service.

  1. Si ce n'est pas déjà fait, installez kpt :

    gcloud components install kpt
    
  2. Téléchargez l'exemple à l'aide de kpt :

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  3. Déployez l'exemple sur le cluster :

    kubectl apply -n demo -f online-boutique
    
  4. Recherchez l'adresse IP externe du service frontend-external :

    kubectl get service frontend-external -n demo
    
  5. Accédez à l'application dans votre navigateur pour confirmer l'installation :

    http://EXTERNAL_IP/
    

Vous pouvez explorer les fonctionnalités d'observabilité d'Anthos Service Mesh pour GKE dans la console Google Cloud. Notez que l'affichage des services de votre maillage dans le graphique de topologie peut prendre jusqu'à 10 minutes.

Lorsque vous avez terminé votre exploration, supprimez l'exemple Online Boutique :

kubectl delete namespaces demo