Vous consultez la documentation d'Anthos Service Mesh 1.7. Accédez à la documentation la plus récente ou sélectionnez une autre version disponible :

Déployer Bookinfo

Cette page explique comment déployer un exemple d'application sur 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.

Plusieurs exemples d'applications sont fournis avec l'installation d'Anthos Service Mesh. Ce guide montre comment déployer l'exemple d'application Bookinfo. Il s'agit d'une application de librairie factice simple, composée de quatre services fournissant une page produits Web, des informations sur les livres, des avis de lecteurs (avec plusieurs versions du service de communication d'avis) et des évaluations. Tous sont gérés à l'aide d'Anthos Service Mesh. Vous trouverez le code source et tous les autres fichiers utilisés dans cet exemple dans le répertoire d'installation d'Anthos Service Mesh sous samples/bookinfo.

Déployer l'application

Procédez comme suit pour déployer les services de l'application Bookinfo avec des proxys side-car injectés avec chaque service.

  1. Sur la ligne de commande de l'ordinateur sur lequel vous avez installé Anthos Service Mesh, accédez à la racine du répertoire d'installation d'Anthos Service Mesh.

  2. Activez l'injection side-car automatique : Exécutez la commande suivante pour localiser le libellé sur istiod, qui contient la valeur d'étiquette de révision à utiliser lors des étapes suivantes.

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

    La sortie ressemble à ceci :

    NAME                                READY   STATUS    RESTARTS   AGE   LABELS
    istiod-asm-173-3-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-173-3,istio=istiod,pod-template-hash=5788d57586
    istiod-asm-173-3-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-173-3,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-173-3.

  3. Appliquez le libellé de révision aux espaces de noms. Dans la commande suivante, NAMESPACE est le nom de l'espace de noms dans lequel vous souhaitez que l'injection side-car se produit, et REVISION est la valeur du libellé de révision istiod que vous avez indiqué dans l'étape précédente.

    kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
    
  4. Déployez votre application à l'aide de kubectl :

    kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml
  5. Confirmez que l'application a été correctement déployée en exécutant les commandes suivantes :

    kubectl get services
    Sortie :
    NAME                       CLUSTER-IP   EXTERNAL-IP   PORT(S)              AGE
    details                    10.0.0.31    <none>        9080/TCP             6m
    kubernetes                 10.0.0.1     <none>        443/TCP              7d
    productpage                10.0.0.120   <none>        9080/TCP             6m
    ratings                    10.0.0.15    <none>        9080/TCP             6m
    reviews                    10.0.0.170   <none>        9080/TCP             6m

    et

    kubectl get pod
    Sortie :
    NAME                                        READY     STATUS    RESTARTS   AGE
    details-v1-1520924117-48z17                 2/2       Running   0          6m
    productpage-v1-560495357-jk1lz              2/2       Running   0          6m
    ratings-v1-734492171-rnr5l                  2/2       Running   0          6m
    reviews-v1-874083890-f0qf0                  2/2       Running   0          6m
    reviews-v2-1343845940-b34q5                 2/2       Running   0          6m
    reviews-v3-1813607990-8ch52                 2/2       Running   0          6m
  6. Enfin, définissez le routage de la passerelle d'entrée pour l'application :

    kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
    

Valider le déploiement de l'application

Pour vérifier si l'application Bookinfo fonctionne, vous devez envoyer du trafic à la passerelle d'entrée.

  • Si vous avez installé Anthos Service Mesh sur des clusters Anthos sur VMware, obtenez l'adresse IP externe de la passerelle d'entrée que vous avez configurée après avoir installé Anthos Service Mesh.

  • Si vous avez installé Anthos Service Mesh sur GKE, obtenez l'adresse IP externe de la passerelle d'entrée comme suit :

    kubectl get svc istio-ingressgateway -n istio-system
    
    Résultat :
    NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)                                      AGE
    istio-ingressgateway   LoadBalancer   10.19.247.233   35.239.7.64   80:31380/TCP,443:31390/TCP,31400:31400/TCP   27m

    Dans cet exemple, l'adresse IP du service d'entrée est 35.239.7.64.

Essayer l'application

  1. Vérifiez que l'application Bookinfo s'exécute avec curl :

    curl -I http://EXTERNAL_IP/productpage

    Si la réponse indique 200, cela signifie que l'application fonctionne correctement avec Anthos Service Mesh.

  2. Pour afficher la page Web de Bookinfo, saisissez l'adresse suivante dans votre navigateur :

    http://EXTERNAL_IP/productpage

    Si vous actualisez la page plusieurs fois, vous devriez voir différentes versions d'avis affichées sur la page produits, chacune à tour de rôle (étoiles rouges, étoiles noires, aucune étoile).

Maintenant que vous disposez d'une application qui génère du trafic, vous pouvez explorer les pages Anthos Service Mesh dans Cloud Console pour consulter les métriques et les autres fonctionnalités d'observabilité.

Étape suivante

Obtenez plus d'informations sur l'exemple d'application Bookinfo.

Effectuer un nettoyage

Lorsque vous avez terminé de tester l'exemple d'application Bookinfo, supprimez-le de votre cluster.

  1. Désinstallez Bookinfo à l'aide du script suivant :

    samples/bookinfo/platform/kube/cleanup.sh
  2. Confirmez l'arrêt :

    kubectl get services
    kubectl get pods

    Les pods Bookinfo devraient être supprimés.