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é le plan de contrôle géré par Google d'Anthos Service Mesh ou installé le plan de contrôle au sein du cluster. Le libellé de révision est utilisé par le webhook d'injecteur side-car automatique pour associer les side-cars injectés à une révision du plan de contrôle particulière.
Dans le cluster
Créez un espace de noms pour l'application :
kubectl create namespace demo
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-198-6-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586 istiod-asm-198-6-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586
Dans le résultat, sous la colonne
LABELS
, notez la valeur du libellé de révisionistiod
, qui suit le préfixeistio.io/rev=
. Dans cet exemple, la valeur estasm-198-6
.Appliquez le libellé de révision à l'espace de noms
demo
. Dans la commande suivante, REVISION correspond à la valeur du libellé de révisionistiod
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 leistio-injection
et le libellé de révision, toutes les commandeskubectl label
de la documentation Anthos Service Mesh incluent la suppression du libelléistio-injection
.
Géré par Google
Créez un espace de noms pour l'application :
kubectl create namespace demo
Appliquez le libellé de révision
asm-managed
à l'espace de nomsdemo
:kubectl label namespace demo istio-injection- istio.io/rev=asm-managed --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 leistio-injection
et le libellé de révision, toutes les commandeskubectl label
de la documentation Anthos Service Mesh incluent la suppression du libelléistio-injection
.
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.
Si ce n'est pas déjà fait, installez
kpt
:gcloud components install kpt
Téléchargez l'exemple à l'aide de
kpt
:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
Déployez l'exemple sur le cluster :
kubectl apply -n demo -f online-boutique
Recherchez l'adresse IP externe du service
frontend-external
:kubectl get service frontend-external -n demo
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