Anthos Service Mesh 1.6

Installer Anthos Service Mesh sur GKE sur Google Cloud

Cette page explique comment effectuer une installation correcte d'Anthos Service Mesh version 1.6.8 sur un cluster GKE sur Google Cloud. Si une version précédente d'Anthos Service Mesh est installée, consultez la page Mettre à niveau Anthos Service Mesh sur GKE.

Avant de commencer

Avant d'installer Anthos Service Mesh, assurez-vous de disposer des éléments suivants :

Définir des identifiants et des autorisations

  1. Initialisez votre projet afin de le préparer pour l'installation. Cette commande crée, entre autres, un compte de service pour permettre aux composants du plan de contrôle, tels que le proxy side-car, d'accéder en toute sécurité aux données et aux ressources du projet :

    curl --request POST \
      --header "Authorization: Bearer $(gcloud auth print-access-token)" \
      --data '' \
      "https://meshconfig.googleapis.com/v1alpha1/projects/${PROJECT_ID}:initialize"

    La commande renvoie des accolades vides : {}.

  1. Obtenez des identifiants d'authentification pour interagir avec le cluster :

    gcloud container clusters get-credentials ${CLUSTER_NAME}
    
  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 avec le cluster-admin-binding existant.

Télécharger le fichier d'installation

    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.6.8-asm.9-linux-amd64.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.6.8-asm.9-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.6.8-asm.9-linux-amd64.tar.gz.1.sig istio-1.6.8-asm.9-linux-amd64.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    La sortie attendue est Verified OK.

  3. 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.6.8-asm.9-linux-amd64.tar.gz

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

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire install/kubernetes/operator/profiles

  4. macOS

  5. 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.6.8-asm.9-osx.tar.gz
  6. 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.6.8-asm.9-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.6.8-asm.9-osx.tar.gz.1.sig istio-1.6.8-asm.9-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    La sortie attendue est Verified OK.

  7. 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.6.8-asm.9-osx.tar.gz

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

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire install/kubernetes/operator/profiles

  8. Windows

  9. 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.6.8-asm.9-win.zip
  10. 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.6.8-asm.9-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.6.8-asm.9-win.zip.1.sig istio-1.6.8-asm.9-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    La sortie attendue est Verified OK.

  11. 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.6.8-asm.9-win.zip

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

    • Des exemples d'applications dans le répertoire samples
    • L'outil de ligne de commande istioctl que vous utilisez pour installer Anthos Service Mesh et qui se trouve dans le répertoire bin
    • Les profils de configuration d'Anthos Service Mesh qui se trouvent dans le répertoire install/kubernetes/operator/profiles

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

Préparer les fichiers de configuration des ressources

Lorsque vous exécutez la commande istioctl install, vous spécifiez -f istio-operator.yaml sur la ligne de commande. Ce fichier contient des informations sur le projet et le cluster requis par Anthos Service Mesh. Vous devez télécharger un package contenant istio-operator.yaml et d'autres fichiers de configuration des ressources afin de pouvoir définir les informations sur le projet et le cluster.

Pour commencer, choisissez un package à télécharger en fonction de l'autorité de certification que vous souhaitez utiliser :

  • asm : nous vous recommandons de télécharger ce package, qui active Mesh CA.

  • asm-citadel : vous pouvez également activer Citadel (désormais intégré à istiod) en tant qu'autorité de certification. Nous vous recommandons de n'utiliser Citadel que si vous disposez d'une autorité de certification personnalisée.

Pour préparer les fichiers de configuration des ressources, procédez comme suit :

  1. Créez un répertoire pour les fichiers de configuration des ressources du package Anthos Service Mesh. Nous vous recommandons d'utiliser le nom du cluster comme nom de répertoire.

  2. Accédez au répertoire dans lequel vous souhaitez télécharger le package Anthos Service Mesh.

  3. Téléchargez le package que vous souhaitez utiliser en fonction de l'autorité de certification :

    Mesh CA

    Téléchargez le package asm, qui active Mesh CA :

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.6-asm asm
    

    Citadel

    Téléchargez le package asm-citadel, qui active Citadel en tant qu'autorité de certification :

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm-citadel@release-1.6-asm asm
    
  4. Définissez l'ID du projet dans lequel le cluster a été créé :

    kpt cfg set asm gcloud.core.project ${PROJECT_ID}
    
  5. Définissez le numéro du projet hôte d'Environ :

    kpt cfg set asm gcloud.project.environProjectNumber ${ENVIRON_PROJECT_NUMBER}
    
  6. Définissez le nom du cluster :

    kpt cfg set asm gcloud.container.cluster ${CLUSTER_NAME}
    
  7. Définissez la zone ou la région par défaut :

    kpt cfg set asm gcloud.compute.location ${CLUSTER_LOCATION}
    
  8. Définissez le profil de configuration que vous souhaitez utiliser :

    • Si tous vos clusters se trouvent dans le même projet, définissez le profil asm-gcp :

      kpt cfg set asm anthos.servicemesh.profile asm-gcp
      
    • Si votre maillage de services contient ou contiendra plusieurs clusters se trouvant dans des projets différents, définissez le profil asm-gcp-multiproject :

      kpt cfg set asm anthos.servicemesh.profile asm-gcp-multiproject
      
  9. Si vous définissez le profil asm-gcp, passez à l'étape suivante. Si vous avez défini le profil asm-gcp-multiprojectyou et téléchargé le package asm, qui active Mesh CA, vous devez configurer les alias de domaine de confiance pour les autres projets qui formeront le maillage de services multicluster.

    1. Obtenez l'ID de projet de tous les clusters qui se trouveront dans le maillage multicluster.

    2. Pour chaque ID de projet, définissez les alias de domaine de confiance. Par exemple, si vous avez des clusters dans trois projets, exécutez la commande suivante en remplaçant PROJECT_ID_1, PROJECT_ID_2 et PROJECT_ID_3 par les ID de tous les projets (y compris du projet en cours).

      kpt cfg set asm anthos.servicemesh.trustDomainAliases PROJECT_ID_1.svc.id.goog PROJECT_ID_2.svc.id.goog PROJECT_ID_3.svc.id.goog

      Lorsque vous configurez les clusters dans les autres projets, vous pouvez exécuter la même commande.

      Les alias de domaine de confiance permettent à Mesh CA d'authentifier les charges de travail sur les clusters d'autres projets. En plus de définir les alias de domaine de confiance, vous devez activer l'équilibrage de charge entre clusters.

  10. Vous pouvez éventuellement vérifier les fichiers de configuration des ressources dans votre propre système de contrôle des sources, tel que Cloud Source Repositories, pour pouvoir suivre les modifications apportées aux fichiers.

Installer Anthos Service Mesh

  1. Si vous utilisez Citadel en tant qu'autorité de certification et que vous souhaitez utiliser une autorité de certification personnalisée, exécutez les commandes suivantes :

    kubectl create namespace istio-system
    kubectl create secret generic cacerts  \
      -n istio-system \
      --from-file=ca-cert.pem \
      --from-file=ca-key.pem \
      --from-file=root-cert.pem \
      --from-file=cert-chain.pem

    Pour en savoir plus, consultez la page Connecter des certificats CA existants.

  2. Exécutez la commande suivante pour installer Anthos Service Mesh à l'aide du profil de configuration que vous avez défini dans le fichier istio-operator.yaml. Si vous souhaitez activer une fonctionnalité facultative compatible, incluez -f et le nom de fichier YAML dans la ligne de commande suivante. Pour plus d'informations, consultez la page Activer les fonctionnalités facultatives.

    istioctl install \
      -f asm/cluster/istio-operator.yaml
  3. Si vous avez utilisé le profil asm-gcp, exécutez la commande suivante pour activer l'interface utilisateur d'Anthos Service Mesh dans Cloud Console :

    kubectl apply -f asm/canonical-service/controller.yaml

    Si vous avez utilisé le profil asm-gcp-multiproject, les données de télémétrie actuelles ne sont pas affichées dans les tableaux de bord Anthos Service Mesh de Cloud Console. Toutefois, vous pouvez toujours consulter les journaux dans Cloud Logging et les métriques dans Cloud Monitoring pour chaque projet.

L'authentification mutuelle TLS (auto mTLS) est activée par défaut. L'authentification mutuelle mTLS permet à un proxy side-car client de détecter automatiquement si le serveur possède un side-car. Le side-car client envoie l'authentification mTLS aux charges de travail avec des side-cars, et envoie du trafic en texte brut aux charges de travail sans side-car.

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

Le résultat attendu ressemble à ce qui suit :

NAME                                   READY   STATUS      RESTARTS   AGE
istio-ingressgateway-cff9f5c7d-qg4ls   1/1     Running   0          7m5s
istio-ingressgateway-cff9f5c7d-vlkzb   1/1     Running   0          7m20s
istiod-66b587859c-886gx                1/1     Running   0          7m33s
istiod-66b587859c-dfs2j                1/1     Running   0          7m33s

Valider l'installation

Nous vous recommandons d'utiliser l'outil d'analyse asmctl pour valider la configuration de base de votre projet, de votre cluster et de vos charges de travail. Si un test asmctl échoue, asmctl recommande des solutions, si possible. La commande asmctl validate exécute des tests de base qui vérifient :

  1. que les API requises par Anthos Service Mesh sont activées sur le projet ;
  2. que la passerelle Istio-Ingress est correctement configurée pour appeler Mesh CA ;
  3. l'état général d'Istiod et de la passerelle Istio-Ingress.

Si vous exécutez la commande asmctl validate avec l'option facultative --with-testing-workloads, en plus des tests de base, asmctl exécute les tests de sécurité qui vérifient que :

  1. la communication TLS mutuelle (mTLS) est correctement configurée ;
  2. Mesh CA peut émettre des certificats.

Pour exécuter les tests de sécurité, asmctl déploie des charges de travail sur votre cluster dans un espace de noms de test, exécute les tests de communication mTLS, fournit les résultats et supprime l'espace de noms de test. Notez que les tests de sécurité ne fonctionnent qu'avec Mesh CA. Si vous utilisez Citadel en tant qu'autorité de certification, les tests de sécurité échouent.

Pour exécuter asmctl, procédez comme suit :

  1. Assurez-vous que les identifiants gcloud application-default sont définis :

     gcloud auth application-default login
    
  2. Si vous ne l'avez pas déjà fait, obtenez des identifiants d'authentification pour interagir avec le cluster :

     gcloud container clusters get-credentials ${CLUSTER_NAME}
    
  3. Pour exécuter les tests de base (en supposant que istio-1.6.8-asm.9/bin se trouve dans votre PATH), procédez comme suit :

    asmctl validate
    

    Si l'opération réussit, la commande renvoie une sortie semblable à ce qui suit :

    [asmctl version 0.4.1]
    Using Kubernetes context: example-context_us-central1-example-cluster
    To change the context, use the --context flag
    Validating enabled APIs
    OK
    Validating ingressgateway configuration
    OK
    Validating istio system
    OK
  4. Si vous avez activé Mesh CA pour exécuter à la fois les tests de base et les tests de sécurité :

    asmctl validate --with-testing-workloads
    

    Si l'opération réussit, la commande renvoie une sortie semblable à ce qui suit :

    [asmctl version 0.4.1]
    Using Kubernetes context: example-context_us-central1-example-cluster
    To change the context, use the --context flag
    Validating enabled APIs
    OK
    Validating ingressgateway configuration
    OK
    Validating istio system
    OK
    
    [asmctl version 0.4.1]
    Using Kubernetes context: example-context_us-central1-example-cluster
    To change the context, use the --context flag
    Validating enabled APIs
    OK
    Validating ingressgateway configuration
    OK
    Validating istio system
    OK
    Validating sample traffic
    Launching example services...
    Sent traffic to example service http code: 200
    verified mTLS configuration
    OK
    Validating issued certs
    OK

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.

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 devez injecter ou mettre à jour le proxy side-car pour 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.

Afficher les tableaux de bord Anthos Service Mesh

Cette section ne s'applique que si vous avez installé Anthos Service Mesh avec le profil de configuration asm-gcp. Si vous avez utilisé le profil asm-gcp-multiproject pour installer Anthos Service Mesh, les données de télémétrie ne seront pas disponibles sur les tableaux de bord Anthos Service Mesh dans Cloud Console.

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 Cloud Console 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 Cloud Console après le déploiement des charges de travail.

L'accès à Anthos Service Mesh dans Cloud Console est contrôlé par la gestion de l'authentification et des accès (IAM). 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 Cloud Console.

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

    Accéder à Anthos Service Mesh

  2. Sélectionnez le projet sur le 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 Cloud Console.

Outre les pages Anthos Service Mesh, les métriques liées à vos services (telles que le nombre de requêtes reçues par un service particulier) sont envoyées à Cloud Monitoring, où elles apparaissent dans l'explorateur de métriques.

Pour afficher les métriques, procédez comme suit :

  1. Dans Google Cloud Console, accédez à la page Monitoring :

    Accéder à Monitoring

  2. Sélectionnez Ressources > Explorateur de métriques.

Pour obtenir la liste complète des métriques, consultez la section Métriques Istio dans la documentation Cloud Monitoring.

Enregistrer votre cluster

Vous devez enregistrer votre cluster auprès de l'Environ du projet pour accéder à l'interface utilisateur unifiée dans Cloud Console. Un Environ 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.

Consultez la section Enregistrer des clusters dans l'Environ pour en savoir plus sur l'enregistrement de votre cluster.

Étapes suivantes