Dans ce tutoriel, vous installez Anthos Service Mesh 1.9.8-asm.6 à l'aide d'un script fourni par Google, install_asm
, sur un nouveau cluster Google Kubernetes Engine (GKE). Ce tutoriel vous guide à travers les étapes suivantes :
- Configurer votre projet Google Cloud
- Créer un cluster GKE avec le nombre minimal de processeurs virtuels requis par Anthos Service Mesh
- Installer Anthos Service Mesh avec un plan de contrôle intégré au cluster
- déployer un exemple d'application afin de pouvoir afficher les données de télémétrie dans les tableaux de bord Anthos Service Mesh de la console Google Cloud.
Coûts
Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :
Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût.
Une fois que vous avez terminé ce guide de démarrage rapide, vous pouvez éviter de continuer à payer des frais en supprimant le cluster. Pour en savoir plus, consultez la section Effectuer un nettoyage.
Avant de commencer
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine API.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine API.
- Notez l'ID de votre projet.
Bien qu'Anthos Service Mesh nécessite d'autres API, le script install_asm
les active pour vous. Afin de limiter les coûts de facturation, le script install_asm
n'active pas l'API GKE Enterprise. Il existe des différences mineures dans la console Google Cloud lorsque l'API GKE Enterprise est activée. Pour en savoir plus sur ces différences, consultez la section Différences entre les interfaces utilisateur de GKE Enterprise et d'Anthos Service Mesh.
Installer les outils nécessaires
Vous pouvez exécuter le script sur Cloud Shell ou sur votre ordinateur local exécutant Linux. Cloud Shell préinstalle tous les outils requis. Notez que macOS n'est pas compatible, car il est fourni avec une ancienne version de bash.
Cloud Shell
Cloud Shell provisionne une machine virtuelle (VM) g1-small Compute Engine exécutant un système d'exploitation Linux basé sur Debian. Les avantages liés à l'utilisation de Cloud Shell sont les suivants :
Cloud Shell comprend
gcloud
,kubectl
,kpt
et les autres outils de ligne de commande dont vous avez besoin.Votre répertoire Cloud Shell $HOME dispose d'un espace de stockage persistant de 5 Go.
Nous vous proposons plusieurs éditeurs de texte :
Éditeur de code, auquel vous accédez en cliquant sur edit en haut de la fenêtre Cloud Shell.
Emacs, Vim ou Nano, auxquels vous accédez depuis la ligne de commande dans Cloud Shell.
Pour utiliser Cloud Shell, procédez comme suit :
- Accédez à Google Cloud Console.
- Sélectionnez votre projet Google Cloud.
Cliquez sur le bouton Activer Cloud Shell en haut de la fenêtre de la console Google Cloud.
Une session Cloud Shell s'ouvre dans un nouveau cadre en bas de la console Google Cloud et affiche une invite de ligne de commande.
Ordinateur Linux local
Assurez-vous que les outils suivants sont installés :
- Google Cloud CLI
- Les outils de ligne de commande standards :
awk
,curl
,grep
,sed
,sha256sum
ettr
- git
- kpt
- kubectl
- jq
Authentifiez-vous avec Google Cloud CLI :
gcloud auth login
Mettez à jour les composants :
gcloud components update
Assurez-vous que
git
se trouve dans votre chemin pour quekpt
puisse le trouver.
Créer un cluster GKE
Exécutez la commande suivante pour créer le cluster avec le nombre minimal de processeurs virtuels requis par Anthos Service Mesh. Dans la commande, remplacez les espaces réservés par les informations suivantes :
- CLUSTER_NAME : le nom du cluster Le nom ne peut contenir que des caractères alphanumériques minuscules et
-
, doit commencer par une lettre et se terminer par un caractère alphanumérique, et ne doit pas comporter plus de 40 caractères. - PROJECT_ID : ID du projet dans lequel le cluster sera créé.
- CLUSTER_LOCATION est la zone du cluster, par exemple
us-central1-a
.
gcloud container clusters create CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION \ --machine-type=e2-standard-4 \ --num-nodes=2 \ --workload-pool=PROJECT_ID.svc.id.goog
- CLUSTER_NAME : le nom du cluster Le nom ne peut contenir que des caractères alphanumériques minuscules et
Obtenez des identifiants d'authentification pour interagir avec le cluster : Cette commande définit également le contexte actuel de
kubectl
sur le cluster.gcloud container clusters get-credentials CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
Télécharger le script d'installation ASM
Téléchargez la version du script qui installe Anthos Service Mesh 1.9.8 dans le répertoire de travail actuel :
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9 > install_asm
Téléchargez le hachage SHA-256 du fichier dans le répertoire de travail actuel :
curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.9.sha256 > install_asm.sha256
Une fois les deux fichiers dans le même répertoire, validez le téléchargement avec la commande suivante :
sha256sum -c --ignore-missing install_asm.sha256
Si la validation réussit, la commande affiche le résultat suivant :
install_asm: OK
Pour assurer la compatibilité, le fichier
install_asm.sha256
inclut la somme de contrôle deux fois pour permettre de renommer n'importe quelle version du script eninstall_asm
. Si vous obtenez une erreur indiquant que--ignore-missing
n'existe pas, réexécutez la commande précédente sans l'option--ignore-missing
.Rendez le script exécutable :
chmod +x install_asm
Installer Anthos Service Mesh
Exécutez le script install_asm
avec les options suivantes pour installer Anthos Service Mesh sur le cluster que vous avez créé précédemment. Si vous n'avez pas fermé cette page depuis la création du cluster, les espaces réservés contiennent les valeurs que vous avez saisies pour la commande gcloud container clusters create
.
./install_asm \
--project_id PROJECT_ID \
--cluster_name CLUSTER_NAME \
--cluster_location CLUSTER_LOCATION \
--mode install \
--output_dir ./asm-downloads \
--enable_all
L'exécution du script install_asm
peut prendre plusieurs minutes. Le script génère des messages d'information pour que vous puissiez suivre sa progression.
La commande exécute install_asm
avec les options suivantes :
--mode install
: exécute le script pour une nouvelle installation et active l'autorité de certification Anthos Service Mesh (CA), qui est l'autorité de certification par défaut pour les installations.--output_dir ./asm-downloads
: le répertoire dans lequel le script télécharge les fichiers à partir du dépôtanthos-service-mesh
, où il télécharge et extrait le fichier d'installation d'Anthos Service Mesh, contenantistioctl
, des exemples et des fichiers manifestes.--enable-registration
: Autorise le script à enregistrer le cluster dans le projet hébergeant le cluster.--enable_all
: permet au script d'activer les API Google requises, de définir les autorisations Identity and Access Management, et d'effectuer les mises à jour requises de votre cluster, ce qui inclut l'activation de GKE Workload Identity.
Déployer l'exemple de boutique en ligne
Téléchargez l'exemple à l'aide de
kpt
:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
Créez un espace de noms pour l'application :
kubectl create namespace demo
Activez l'injection side-car automatique (injection automatique). Exécutez la commande suivante pour localiser le libellé sur le service
istiod
, qui contient la valeur du libellé 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-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. 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 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
.Déployez l'exemple sur le cluster :
kubectl apply -n demo -f online-boutique
Récupérez l'adresse IP externe de la passerelle d'entrée :
kubectl get service istio-ingressgateway -n istio-system
Le résultat est semblable à :
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 de la passerelle d'entrée est
35.239.7.64
.Accédez à l'application dans votre navigateur pour confirmer l'installation :
http://EXTERNAL_IP/
Afficher les tableaux de bord de Service Mesh
Une fois que les charges de travail sont déployées sur votre cluster et que les proxys side-car ont été injectés, vous pouvez explorer les pages Anthos Service Mesh de la console Google Cloud pour consulter toutes les fonctionnalités d'observabilité offertes par Anthos Service Mesh. Notez qu'il faut environ une à deux minutes pour que les données de télémétrie soient affichées dans la console Google Cloud après le déploiement des charges de travail.
L'accès à Anthos Service Mesh dans la console Google Cloud est contrôlé par IAM (Identity and Access Management). Pour permettre l'accès aux pages Anthos Service Mesh, un propriétaire de projet doit accorder aux utilisateurs le rôle éditeur ou lecteur de projet, ou les rôles plus restrictifs décrits dans la section Contrôler l'accès à Anthos Service Mesh dans la console Google Cloud.
Dans Google Cloud Console, accédez à Anthos Service Mesh.
Sélectionnez le projet Google Cloud dans la liste déroulante de la barre de menu.
Si vous avez plusieurs maillages de services, sélectionnez le maillage dans la liste déroulante Maillage de services.
Pour en savoir plus, consultez la page Explorer Anthos Service Mesh dans la console Google Cloud.
Effectuer un nettoyage
Avant de procéder au nettoyage, si vous souhaitez en savoir plus sur l'authentification TLS mutuelle, consultez la section exemple Anthos Service Mesh : mTLS.
Si vous souhaitez éviter des frais supplémentaires, supprimez le cluster :
gcloud container clusters delete CLUSTER_NAME \ --project=PROJECT_ID \ --zone=CLUSTER_LOCATION
Si vous souhaitez conserver votre cluster et supprimer l'exemple de boutique en ligne, procédez comme suit :
kubectl delete namespaces demo
Étapes suivantes
En savoir plus :
- Configuration requise pour les clusters
- Consultez les options du script
install_asm
. - Déployer des services
- Les commandes
gcloud
utilisées dans ce tutoriel