Installation d'un projet unique sur GKE

Ce guide explique comment installer, migrer ou mettre à niveau vers la version 1.9.8 du service Anthos Service Mesh pour un maillage contenant un ou plusieurs clusters GKE appartenant au même projet. Vous utilisez un script fourni par Google, install_asm, qui configure votre projet et votre cluster, puis installe Anthos Service Mesh à l'aide de istioctl install.

Vous pouvez utiliser ce guide et le script pour les cas d'utilisation suivants :

  • Les nouvelles installations d'Anthos Service Mesh 1.9.8.

  • Mise à niveau depuis 1.8 or a 1.9 patch release. Les mises à niveau à partir de versions antérieures ne sont pas acceptées.

  • La migration du logiciel Open Source Istio 1.8 or 1.9 vers Anthos Service Mesh. Si vous disposez d'une version antérieure d'Istio, vous devez d'abord la mettre à niveau avant de migrer vers Anthos Service Mesh. Si vous devez effectuer une mise à niveau, accédez à la page Mettre à niveau Istio dans la version d'Istio applicable. Notez que la mise à niveau d'Istio couvrant plusieurs versions mineures (par exemple, 1.6.x vers 1.8.x) en une seule étape n'est pas officiellement testée ni recommandée. Pour planifier votre migration, veillez à consulter la page Préparer la migration depuis Istio.

Prérequis

Ce guide suppose que vous disposez des éléments suivants :

Différences entre Anthos et Anthos Service Mesh

Anthos Service Mesh est disponible avec GKE Enterprise ou en tant que service autonome. Les API Google permettent de déterminer votre mode de facturation. Pour utiliser Anthos Service Mesh en tant que service autonome, n'activez pas l'API GKE Enterprise dans votre projet. Le script active toutes les autres API Google requises à votre place. Pour en savoir plus sur la tarification d'Anthos Service Mesh, consultez la page Tarifs.

  • Si vous êtes abonné à GKE Enterprise, veillez à activer l'API GKE Enterprise.

    Activer l'API

  • Si vous n'êtes pas abonné à GKE Enterprise, vous pouvez toujours installer Anthos Service Mesh, mais certains éléments d'interface utilisateur et fonctionnalités de la console Google Cloud ne sont disponibles que pour les abonnés GKE Enterprise. Pour en savoir plus sur ce qui est disponible pour les abonnés et les non-abonnés, consultez la section Différences entre les interfaces utilisateur de GKE Enterprise et d'Anthos Service Mesh.

  • Si vous avez activé l'API GKE Enterprise, mais que vous souhaitez utiliser Anthos Service Mesh en tant que service autonome, désactivez l'API GKE Enterprise.

Conditions requises

  • Votre cluster GKE doit répondre aux exigences suivantes :

    • Le cluster GKE doit être standard, car les clusters Autopilot ont des limites de webhooks qui n'autorisent pas MutatingWebhookConfiguration pour le istio-sidecar-injector.

    • Type de machine comportant au moins quatre processeurs virtuels, par exemple e2-standard-4. Si le type de machine de votre cluster ne comporte pas au moins quatre processeurs virtuels, modifiez le type de machine comme décrit dans la section Migrer des charges de travail vers différents types de machines.

    • Le nombre minimal de nœuds dépend du type de machine. Anthos Service Mesh nécessite au moins huit processeurs virtuels. Si le type de machine comporte quatre processeurs virtuels, votre cluster doit comporter au moins deux nœuds. Si le type de machine comporte huit processeurs virtuels, le cluster n'a besoin que d'un nœud. Si vous devez ajouter des nœuds, consultez la page Redimensionner un cluster.

    • Par défaut, le script active Workload Identity sur votre cluster. Workload Identity est la méthode recommandée pour appeler les API Google. L'activation de Workload Identity modifie la manière dont les appels de vos charges de travail vers les API Google sont sécurisés, comme décrit dans la section Limites de Workload Identity.

      Si vous effectuez une nouvelle installation et envisagez d'utiliser l'autorité de certification Anthos Service Mesh (Mesh CA), vous pouvez utiliser le pool d'identités de charge de travail du parc en remplacement de la fonctionnalité Workload Identity de GKE. Pour utiliser Mesh CA avec le pool d'identités de charge de travail du parc (Bêta), vous devez suivre les étapes décrites dans la section Enregistrer un cluster avant d'exécuter le script, ou bien inclure l'option --enable_registration lorsque vous exécutez le script afin de permettre au script d'enregistrer le cluster dans le projet qui l'héberge. Pour obtenir un exemple d'exécution du script, consultez la section Activer Mesh CA avec le pool d'identités de charge de travail du parc.

    • Nous vous recommandons d'inscrire le cluster dans une version disponible, mais cela n'est pas obligatoire. Nous vous recommandons de vous inscrire à la version disponible standard, car d'autres versions peuvent être basées sur une version de GKE non compatible avec Anthos Service Mesh 1.9.8. Pour plus d'informations, consultez la section Environnements compatibles. Suivez les instructions de la page Enregistrer un cluster existant dans une version disponible si vous disposez d'une version GKE statique.

  • Pour être inclus dans le maillage de services, les ports de service doivent être nommés et le nom de protocole du port doit respecter la syntaxe suivante : name: protocol[-suffix], où les crochets indiquent un suffixe facultatif qui doit commencer par un tiret. Pour plus d'informations, consultez la section Nommer les ports de service.

  • Si vous installez Anthos Service Mesh sur un cluster privé, vous devez ouvrir le port 15017 dans le pare-feu pour que les webhooks utilisés pour l'injection side-car automatique et la validation de la configuration fonctionnent correctement. Pour en savoir plus, consultez la page Ouvrir un port sur un cluster privé.

  • Si vous avez créé un périmètre de service dans votre organisation, vous devrez peut-être ajouter le service Mesh CA au périmètre. Pour en savoir plus, consultez la section Ajouter l'autorité de certification Mesh CA à un périmètre de service.

  • Pour les migrations, istiod doit être installé dans l'espace de noms istio-system, ce qui est généralement le cas.

  • Un projet Google Cloud ne peut être associé qu'à un seul réseau maillé.

  • Si vous souhaitez modifier les limites de ressources par défaut pour le conteneur side-car istio-proxy, les nouvelles valeurs doivent être supérieures aux valeurs par défaut afin d'éviter -Événements de mémoire (OOM).

  • Pour les charges de travail Windows Server, Istio n'est pas compatible. Si votre cluster comporte à la fois des pools de nœuds Linux et Windows Server, vous pouvez toujours installer Anthos Service Mesh et l'utiliser sur vos charges de travail Linux.

Personnaliser le plan de contrôle

Les fonctionnalités compatibles avec Anthos Service Mesh diffèrent selon les plates-formes. Nous vous recommandons de consulter les fonctionnalités compatibles pour connaître les fonctionnalités compatibles avec GKE sur Google Cloud. Certaines fonctionnalités sont activées par défaut. Vous pouvez activer les autres fonctionnalités en créant un fichier de superposition IstioOperator. Lorsque vous exécutez le script install_asm, vous pouvez spécifier l'option --custom_overlay avec le fichier de superposition.

Choisir une autorité de certification

Pour les nouvelles installations et les migrations, vous pouvez utiliser l'autorité de certification Anthos Service Mesh (Mesh CA) ou Istio CA (anciennement Citadel) en tant qu'autorité de certification (CA) pour émettre des certificats TLS mutuels (mTLS).

Nous vous recommandons généralement d'utiliser Mesh CA pour les raisons suivantes :

  • Mesh CA est un service hautement fiable et évolutif, optimisé pour les charges de travail à scaling dynamique sur Google Cloud.
  • Avec Mesh CA, Google gère la sécurité et la disponibilité du backend CA.
  • Mesh CA vous permet de dépendre d'une seule racine de confiance dans les clusters.

Toutefois, vous pouvez envisager d'utiliser Istio CA dans les cas suivants :

  • Si vous disposez d'une autorité de certification personnalisée.
  • Si vous migrez depuis Istio.

    Si vous choisissez Istio CA, il n'y a presque pas d'interruption car le trafic mTLS n'est pas interrompu pendant la migration. Si vous choisissez Mesh CA, vous devez planifier un temps d'arrêt pour la migration, car la racine de confiance passe d'Istio CA à Mesh CA. Pour migrer vers la racine de confiance de Mesh CA, vous devez redémarrer l'ensemble des pods dans tous les espaces de noms. Pendant ce processus, les anciens pods ne peuvent pas établir de connexions mTLS avec les nouveaux pods.

Remarque: Pour les nouvelles installations d'Anthos Service Mesh, le script active par défaut Mesh CA.

Les certificats émis par l'autorité de certification d'Anthos Service Mesh (Mesh CA) incluent les données suivantes sur les services de votre application :

  • L'ID de projet Google Cloud
  • L'espace de noms GKE
  • Le nom du compte de service GKE

Enregistrer votre cluster

Vous devez enregistrer votre cluster auprès du parc pour pouvoir accéder à l'interface utilisateur unifiée dans la console Google Cloud. Un parc constitue un moyen unifié d'afficher et de gérer les clusters et leurs charges de travail, y compris les clusters extérieurs à Google Cloud.

Vous pouvez suivre les étapes décrites dans la section Enregistrer un cluster, ou bien inclure l'option --enable_registration lorsque vous exécutez le script afin de permettre au script d'enregistrer le cluster dans le projet qui l'héberge.

Installer les outils requis

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

  4. Mettez à jour les composants :

    gcloud components update
    

    La commande renvoie un résultat semblable à celui-ci :

    ERROR: (gcloud.components.update)
    You cannot perform this action because the gcloud CLI component manager
    is disabled for this installation. You can run the following command
    to achieve the same result for this installation:
    
    sudo apt-get update && sudo apt-get --only-upgrade install ...
  5. Copiez la commande longue, puis collez-la pour mettre à jour les composants.

Ordinateur Linux local

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

  2. Authentifiez-vous en utilisant gcloud 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.

Télécharger le script

Cette section explique comment télécharger le script, définir les paramètres obligatoires et facultatifs, et exécuter le script. Pour obtenir une explication détaillée de l'utilisation du script, consultez la section Comprendre le script.

  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
    

Étapes suivantes