Guide de démarrage rapide d'Anthos Service Mesh pour GKE

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 :

  1. Configurer votre projet Google Cloud
  2. Créer un cluster GKE avec le nombre minimal de processeurs virtuels requis par Anthos Service Mesh
  3. Installer Anthos Service Mesh avec un plan de contrôle intégré au cluster
  4. 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. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

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

  1. 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Kubernetes Engine API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Make sure that billing is enabled for your Google Cloud project.

  7. Enable the Kubernetes Engine API.

    Enable the API

  8. 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 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 :

  1. Accédez à Google Cloud Console.
  2. Sélectionnez votre projet Google Cloud.
  3. Cliquez sur le bouton Activer Cloud Shell en haut de la fenêtre de la console Google Cloud.

    Console Google Cloud Platform

    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.

    Session Cloud Shell

Ordinateur Linux local

  1. Assurez-vous que les outils suivants sont installés :

  2. Authentifiez-vous avec Google Cloud CLI :

    gcloud auth login
    
  3. Mettez à jour les composants :

    gcloud components update
    
  4. Assurez-vous que git se trouve dans votre chemin pour que kpt puisse le trouver.

Créer un cluster GKE

  1. 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
    
  2. 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

  1. 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
    
  2. 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
    
  3. 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 en install_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.

  4. 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ôt anthos-service-mesh, où il télécharge et extrait le fichier d'installation d'Anthos Service Mesh, contenant istioctl, 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

  1. Téléchargez l'exemple à l'aide de kpt :

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/microservices-demo.git/release \
    online-boutique
    
  2. Créez un espace de noms pour l'application :

    kubectl create namespace demo
    
  3. 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évision istiod, qui suit le préfixe istio.io/rev=. Dans cet exemple, la valeur est asm-198-6.

  4. 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 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.

  5. Déployez l'exemple sur le cluster :

    kubectl apply -n demo -f online-boutique
    
  6. 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.

  7. 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.

  1. Dans Google Cloud Console, accédez à Anthos Service Mesh.

    Accéder à Anthos Service Mesh

  2. Sélectionnez le projet Google Cloud dans la liste déroulante de la barre de menu.

  3. 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 :