Anthos Service Mesh 1.4 est arrivé en fin de vie et n'est plus pris en charge. Pour en savoir plus sur la mise à niveau, consultez la section Mettre à niveau depuis des versions antérieures. Accédez à la documentation la plus récente ou sélectionnez une autre version :

Installer Anthos Service Mesh sur site

Anthos Service Mesh est un framework compatible avec Istio permettant de connecter, surveiller et sécuriser les services exécutés sur Google Kubernetes Engine (GKE) et sur des clusters Anthos sur VMware. Grâce à lui, vous pouvez créer un réseau de services déployés avec équilibrage de charge, authentification de service à service, surveillance et bien plus, sans avoir à modifier le code des services. Anthos Service Mesh injecte automatiquement un proxy side-car pour chacun des pods de votre application. Le proxy side-car intercepte tout le trafic réseau en provenance et à destination des pods. Anthos Service Mesh configure une passerelle d'entrée pour gérer le trafic entrant vers le maillage. Vous pouvez utiliser des API Istio Open Source pour configurer des règles appliquées à l'aide de side-cars et de passerelles.

Ce guide explique comment effectuer une installation nettoyée de la version d'Anthos Service Mesh 1.4.10-asm.18 sur les clusters Anthos sur VMware. Si une version précédente d'Anthos Service Mesh est installée, consultez la page Mettre à niveau Anthos Service Mesh sur les clusters Anthos sur VMware.

L'installation active les fonctionnalités principales d'Istio compatibles avec les clusters Anthos sur VMware. Notez que les composants gérés d'Anthos Service Mesh ne sont pas compatibles avec les clusters Anthos sur VMware.

À propos des composants du plan de contrôle

Les composants Istio suivants sont préinstallés sur les clusters Anthos sur VMware :

  • Citadel est installé dans l'espace de noms kube-system.
  • Les passerelles d'entrée Pilot et Istio sont installées dans l'espace de noms gke-system.

Les clusters Anthos sur VMware se servent de ces composants pour activer l'entrée et sécuriser la communication entre les composants contrôlés par Google. Si vous n'avez besoin que de la fonctionnalité d'entrée, il est inutile d'installer le logiciel Open Source Istio ou Anthos Service Mesh. Pour en savoir plus sur la configuration des entrées, consultez la section Activer l'entrée.

Lorsque vous installez Anthos Service Mesh, ses composants sont installés dans l'espace de noms istio-system. Étant donné que les composants d'Anthos Service Mesh se trouvent dans un espace de noms différent, ils n'entrent pas en conflit avec les composants Istio préinstallés sur les clusters Anthos sur VMware.

Avant de commencer

Passez en revue les conditions et restrictions suivantes avant de commencer la configuration.

Conditions requises

  • Vous devez disposer d'une licence d'essai ou d'un abonnement Anthos. Pour en savoir plus, consultez le guide des tarifs Anthos.

  • Assurez-vous que le cluster d'utilisateur sur lequel vous installez Anthos Service Mesh dispose d'au moins quatre processeurs virtuels, de 15 Go de mémoire et de quatre instances dupliquées.

  • Consultez la page consacrée aux exigences concernant les pods et les services avant de déployer des charges de travail.

  • Assurez-vous que la version de votre cluster est répertoriée dans la section Environnements compatibles. Pour vérifier la version de votre cluster, procédez comme suit :

    gkectl version
    

    Le résultat est semblable à ce qui suit :

    1.2.0-gke.6 (git-0912663b0)
    

Restrictions

Une seule installation d'Anthos Service Mesh par projet Google Cloud est acceptée. Les déploiements de plusieurs réseaux maillés dans un seul projet ne sont pas acceptés.

Configurer votre environnement

Sur votre ordinateur local, installez et initialisez le SDK Cloud (l'outil de ligne de commande gcloud).

Si le SDK Cloud est déjà installé :

  1. Authentifiez-vous avec le SDK Cloud :

    gcloud auth login
    
  2. Mettez à jour les composants :

    gcloud components update
    
  3. Installez kubectl :

    gcloud components install kubectl
    
  4. Obtenez l'ID du projet dans lequel le cluster a été créé :

    gcloud

    gcloud projects list

    Console

    1. Dans Cloud Console, accédez à la page Tableau de bord :

      Accéder à la page "Tableau de bord"

    2. Cliquez sur la liste déroulante Sélectionner située en haut de la page. Sélectionnez votre projet dans la fenêtre Sélectionner qui vous est présentée. L'ID du projet est affiché sur la fiche Informations sur le projet du tableau de bord du projet.

  5. Définissez l'ID de projet par défaut pour l'outil de ligne de commande gcloud :

    gcloud config set project PROJECT_ID

Définir des identifiants et des autorisations

Avant de continuer, assurez-vous d'avoir activé toutes les API requises. En cas de doute, cela ne pose pas de problème d'exécuter à nouveau la commande gcloud services enable.

  1. Assurez-vous de disposer du rôle kubectl pour le cluster d'utilisateur dans lequel vous souhaitez installer Anthos Service Mesh. Notez que vous ne pouvez installer Anthos Service Mesh que sur un cluster d'utilisateur, et non sur un cluster d'administrateur.
  2. Accordez des autorisations d'administrateur de cluster à l'utilisateur actuel. Vous avez besoin de ces autorisations pour créer les règles de contrôle d'accès basé sur les rôles (RBAC) nécessaires pour Anthos Service Mesh :
    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user="$(gcloud config get-value core/account)"

    Si l'erreur "cluster-admin-binding" already exists s'affiche, vous pouvez l'ignorer en toute sécurité et poursuivre la liaison d'administrateur de cluster existante.

Préparer l'installation d'Anthos Service Mesh

    Linux

  1. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-linux.tar.gz
  2. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-linux.tar.gz.1.sig
    openssl dgst -verify - -signature istio-1.4.10-asm.18-linux.tar.gz.1.sig istio-1.4.10-asm.18-linux.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    La sortie attendue est Verified OK.

  3. macOS

  4. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-osx.tar.gz
  5. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.4.10-asm.18-osx.tar.gz.1.sig istio-1.4.10-asm.18-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    La sortie attendue est Verified OK.

  6. Windows

  7. Téléchargez le fichier d'installation d'Anthos Service Mesh dans votre répertoire de travail actuel :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-win.zip
  8. Téléchargez le fichier de signature et utilisez openssl pour valider la signature :
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.4.10-asm.18-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.4.10-asm.18-win.zip.1.sig istio-1.4.10-asm.18-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    La sortie attendue est Verified OK.

  9. Extrayez le contenu du fichier vers n’importe quel emplacement de votre système de fichiers. Par exemple, pour extraire le contenu vers le répertoire de travail actuel :
    tar xzf istio-1.4.10-asm.18-linux.tar.gz

    Cette commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.4.10-asm.18, qui contient les éléments suivants :

    • Des exemples d'application dans samples
    • Les outils suivants dans le répertoire bin :
      • istioctl : utilisez istioctl pour installer Anthos Service Mesh.
      • asmctl : utilisez asmctl pour valider votre configuration de sécurité après avoir installé Anthos Service Mesh. (Actuellement, asmctl n'est pas compatible avec les clusters Anthos sur VMware.)

  10. Assurez-vous d'être dans le répertoire racine de l'installation d'Anthos Service Mesh.
    cd istio-1.4.10-asm.18
  11. Pour plus de commodité, ajoutez les outils du répertoire /bin à votre variable PATH :
    export PATH=$PWD/bin:$PATH

Créer l'espace de noms istio-system

Créez un espace de noms appelé istio-system pour les composants du plan de contrôle :

kubectl create namespace istio-system

Installer Anthos Service Mesh

Cette section explique comment installer Anthos Service Mesh et activer les fonctionnalités par défaut compatibles répertoriées sur la page Fonctionnalités compatibles. Pour plus d'informations sur l'activation des fonctionnalités facultatives compatibles, consultez Activer des fonctionnalités facultatives.

Pour installer Anthos Service Mesh, procédez comme suit :

Choisissez l'une des commandes suivantes pour configurer Anthos Service Mesh en mode d'authentification TLS mutuel (mTLS) PERMISSIVE ou en mode mTLS STRICT.

mTLS en mode PERMISSIVE

istioctl manifest apply --set profile=asm-onprem

mTLS en mode STRICT

istioctl manifest apply --set profile=asm-onprem \
  --set values.global.mtls.enabled=true

Vérifier les composants du plan de contrôle

Vérifiez que les pods du plan de contrôle dans istio-system sont opérationnels :

kubectl get pod -n istio-system

Un résultat semblable aux lignes suivantes doit s'afficher :

NAME                                      READY   STATUS      RESTARTS   AGE
istio-citadel-85f4d775cd-dmpj2            1/1     Running     0          18m
istio-galley-5c65896ff7-m2pls             2/2     Running     0          18m
istio-ingressgateway-587cd459f-q6hqt      2/2     Running     0          18m
istio-pilot-9db77b99f-7wfb6               2/2     Running     0          18m
istio-sidecar-injector-69c4d9f875-dt8rn   1/1     Running     0          18m
promsd-55f464d964-lqs7w                   2/2     Running     0          18m

Injecter des proxys side-car

Anthos Service Mesh utilise des proxys side-car pour améliorer la sécurité, la fiabilité et l'observabilité du réseau. Avec Anthos Service Mesh, ces fonctions sont extraites du conteneur principal de l'application et mises en œuvre dans un proxy commun hors processus fourni par un conteneur séparé dans le même pod.

Vous devez injecter ou mettre à jour le proxy side-car à toutes les charges de travail qui s'exécutaient sur votre cluster avant l'installation d'Anthos Service Mesh afin qu'elles disposent de la version actuelle de cet outil. Avant de déployer des charges de travail, assurez-vous de configurer l'injection du proxy side-car afin qu'Anthos Service Mesh puisse surveiller et sécuriser le trafic.

Vous pouvez activer l'injection side-car automatique avec une seule commande, par exemple :

kubectl label namespace NAMESPACE istio-injection=enabled --overwrite

NAMESPACE est le nom de l'espace de noms pour les services de votre application ou default si vous n'avez pas créé explicitement d'espace de noms.

Pour en savoir plus, consultez la section Injecter des proxys side-car.

Configurer une adresse IP externe

L'installation d'Anthos Service Mesh par défaut suppose qu'une adresse IP externe est automatiquement allouée aux services LoadBalancer. Cela ne s'applique pas aux clusters Anthos sur VMware. Par conséquent, vous devez allouer une adresse IP manuellement pour la ressource de passerelle d'entrée d'Anthos Service Mesh.

Pour configurer une adresse IP externe, suivez les instructions de l'une des sections ci-dessous, en fonction du mode d'équilibrage de charge de votre cluster :

Mode d'équilibrage de charge intégré

  1. Ouvrez la configuration du service istio-ingressgateway :

    kubectl edit svc -n istio-system istio-ingressgateway
    

    La configuration du service istio-ingressgateway s'ouvre dans l'éditeur de texte par défaut de votre interface système.

  2. Ajoutez la ligne suivante au fichier sous le bloc de spécification (spec) :

    loadBalancerIP: <your static external IP address>
    

    Exemple :

    spec:
     loadBalancerIP: 203.0.113.1
    
  3. Enregistrez le fichier.

Mode d'équilibrage de charge manuel

Pour exposer un service de type NodePort sur une adresse IP virtuelle de l'équilibreur de charge sélectionné, vous devez d'abord déterminer les valeurs de nodePort :

  1. Affichez la configuration du service istio-ingressgateway dans votre interface système :

    kubectl get svc -n istio-system istio-ingressgateway -o yaml
    

    Chacun des ports des passerelles d'Anthos Service Mesh est affiché. Le résultat ressemble à ce qui suit :

     ...
     ports:
     - name: status-port
       nodePort: 30391
       port: 15020
       protocol: TCP
       targetPort: 15020
     - name: http2
       nodePort: 31380
       port: 80
       protocol: TCP
       targetPort: 80
     - name: https
       nodePort: 31390
       port: 443
       protocol: TCP
       targetPort: 443
     - name: tcp
       nodePort: 31400
       port: 31400
       protocol: TCP
       targetPort: 31400
     - name: https-kiali
       nodePort: 31073
       port: 15029
       protocol: TCP
       targetPort: 15029
     - name: https-prometheus
       nodePort: 30253
       port: 15030
       protocol: TCP
       targetPort: 15030
     - name: https-grafana
       nodePort: 30050
       port: 15031
       protocol: TCP
       targetPort: 15031
     - name: https-tracing
       nodePort: 31204
       port: 15032
       protocol: TCP
       targetPort: 15032
     - name: tls
       nodePort: 30158
       port: 15443
       protocol: TCP
       targetPort: 15443
     ...
    
  2. Accordez l'accès à ces ports via votre équilibreur de charge.

    Par exemple, le port de service http2 utilise le port 80 et le nodePort 31380. Supposons que les adresses des nœuds de votre cluster d'utilisateur soient 192.168.0.10, 192.168.0.11 et 192.168.0.12, et que l'adresse IP virtuelle de votre équilibreur de charges soit 203.0.113.1.

    Configurez votre équilibreur de charge de sorte que le trafic dirigé vers 203.0.113.1:80 soit transféré vers 192.168.0.10:31380, 192.168.0.11:31380 ou 192.168.0.12:31380. Vous pouvez sélectionner les ports de service auxquels vous souhaitez donner l'accès à cette adresse IP virtuelle.

Étape suivante