Installer les outils dépendants et vérifier le cluster

Cette page vous explique comment préparer votre environnement et votre cluster pour installer Cloud Service Mesh dans le cluster pour les charges de travail Kubernetes en dehors de Google Cloud.

Installer les outils nécessaires

Vous pouvez exécuter asmcli sur Cloud Shell ou sur votre machine locale Linux. Cloud Shell préinstalle tous les outils requis.

Si vous exécutez asmcli localement, assurez-vous que les outils suivants sont installés :

  • Google Cloud CLI
  • Les outils de ligne de commande standards : awk, curl, grep, sed et tr
  • git
  • kubectl
  • jq
  • (Facultatif, pour tester la connectivité) netcat (nc)

Configurer gcloud

Procédez comme suit même si vous utilisez Cloud Shell.

  1. Authentifiez-vous avec Google Cloud CLI :

    gcloud auth login --project PROJECT_ID
    
  2. Mettez à jour les composants :

    gcloud components update
    

Définissez le contexte actuel sur votre cluster d'utilisateur :

Définissez le contexte kubectl pour qu'il pointe vers votre cluster hors Google Cloud, conformément aux instructions spécifiques à la plate-forme.

Télécharger asmcli

Cette section explique comment télécharger le asmcli.

  1. Téléchargez la version qui installe Cloud Service Mesh 1.22.6 dans le répertoire de travail actuel:

    curl https://storage.googleapis.com/csm-artifacts/asm/asmcli_1.22 > asmcli
    

    Résultat attendu :

    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
    100  167k  100  167k    0     0   701k      0 --:--:-- --:--:-- --:--:--  701k
    
  2. Rendez le script exécutable :

    chmod +x asmcli
    

Accorder des autorisations d'administrateur de cluster

  1. Assurez-vous d'avoir défini le contexte de votre cluster d'utilisateur :

    kubectl config use-context CONTEXT
  2. Accordez des autorisations d'administrateur de cluster à votre compte utilisateur (votre adresse e-mail de connexion Google Cloud). Vous avez besoin de ces autorisations pour créer les règles de contrôle d'contrôle des accès basé sur les rôles (RBAC) nécessaires pour Cloud Service Mesh:

    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user=USER_ACCOUNT

Valider le projet et le cluster

Vous pouvez exécuter asmcli validate afin de vous assurer que votre projet et votre cluster sont configurés comme il se doit pour installer Cloud Service Mesh. Avec cette option, asmcli n'apporte aucune modification à votre projet ou cluster et n'installe pas Cloud Service Mesh.

asmcli vérifie que :

Par défaut, asmcli télécharge et extrait le fichier d'installation, puis télécharge le package de configuration asm de GitHub dans un répertoire temporaire. Avant de quitter, asmcli génère un message qui fournit le nom du répertoire temporaire. Nous vous recommandons de spécifier un répertoire pour les téléchargements avec l'option --output_dir DIR_PATH. L'option --output_dir facilite l'utilisation de l'outil de ligne de commande istioctl. Vous aurez peut-être besoin de istioctl pour résoudre les problèmes de configuration. De plus, les fichiers de configuration permettant d'activer les fonctionnalités facultatives à l'aide de asmcli sont inclus dans le répertoire asm/istio/options.

Exécutez la commande suivante pour valider votre configuration et télécharger le fichier d'installation et le package asm dans le répertoire OUTPUT_DIR.

Exécutez la commande suivante pour exécuter asmcli validate sur les plates-formes suivantes : Google Distributed Cloud (logiciel uniquement) pour VMware, Google Distributed Cloud (logiciel uniquement) pour Bare Metal, GKE sur AWS, GKE sur Azure, Amazon EKS et Microsoft AKS.

  1. Définissez le contexte actuel sur votre cluster d'utilisateur :

    kubectl config use-context CLUSTER_NAME
    
  2. Exécutez la commande suivante pour valider votre configuration et télécharger le fichier d'installation et le package asm dans le répertoire OUTPUT_DIR :

    ./asmcli validate \
       --kubeconfig KUBECONFIG_FILE \
       --fleet_id FLEET_PROJECT_ID \
       --output_dir DIR_PATH \
       --platform multicloud
    
    • --kubeconfig : chemin d'accès au kubeconfig. Vous pouvez spécifier un chemin d'accès relatif ou complet. La variable d'environnement $PWD ne fonctionne pas ici.

    • --fleet_id : ID du projet du projet hôte du parc. asmcli validate vérifie que le cluster est enregistré dans le parc spécifié.

    • --output_dir : incluez cette option pour spécifier un répertoire dans lequel asmcli télécharge le package asm et extrait le fichier d'installation, qui contient istioctl, des exemples et des fichiers manifestes. Sinon, asmcli télécharge les fichiers dans un répertoire tmp. Vous pouvez spécifier un chemin d'accès relatif ou complet. La variable d'environnement $PWD ne fonctionne pas ici.

    • --platform multicloud spécifie que la plate-forme est une plate-forme autre que Google Cloud, par exemple une plate-forme sur site ou multicloud.

En cas de réussite, asmcli génère les éléments suivants :

asmcli: Setting up necessary files...
asmcli: Using asm_kubeconfig as the kubeconfig...
asmcli: Checking installation tool dependencies...
asmcli: Fetching/writing GCP credentials to kubeconfig file...
asmcli: Verifying connectivity (10s)...
asmcli: kubeconfig set to asm_kubeconfig
asmcli: using context gke_example-project-12345_us-central1_cluster-2
asmcli: Getting account information...
asmcli: Downloading ASM..
asmcli: Downloading ASM kpt package...
fetching package "/asm" from "https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages" to "asm"
asmcli: Checking required APIs...
asmcli: Checking for project example-project-12345...
asmcli: Reading labels for us-central1/cluster-2...
asmcli: Checking for istio-system namespace...
asmcli: Confirming node pool requirements for example-project-12345/us-central1/cluster-2...
asmcli: Checking Istio installations...
asmcli: [WARNING]: There is no way to validate that the meshconfig API has been initialized.
asmcli: [WARNING]: This needs to happen once per GCP project. If the API has not been initialized
asmcli: [WARNING]: for example-project-12345, please re-run this tool with the --enable_gcp_components
asmcli: [WARNING]: flag. Otherwise, installation will succeed but Anthos Service Mesh
asmcli: [WARNING]: will not function correctly.
asmcli: Successfully validated all requirements to install ASM.

Si l'un des tests échoue à la validation, asmcli génère un message d'erreur. Par exemple, si toutes les API Google requises ne sont pas activées pour votre projet, vous obtenez l'erreur suivante :

ERROR: One or more APIs are not enabled. Please enable them and retry, or run
`asmcli` with the '--enable_gcp_apis' flag to allow `asmcli` to enable them
on your behalf.

Si vous recevez un message d'erreur indiquant que vous devez exécuter asmcli avec une option d'activation, vous disposez des options suivantes :

  • Incluez l'option spécifique du message d'erreur ou l'option --enable_all lors de l'exécution de asmcli pour effectuer l'installation réelle.

  • Si vous préférez, vous pouvez mettre à jour vous-même votre projet et votre cluster avant d'exécuter asmcli, comme décrit dans la section Configurer votre projet et votre cluster GKE vous-même.

Notez que asmcli validate n'autorise aucune option d'activation, car il vérifie simplement que votre projet et votre cluster sont prêts à être installés.

Inspecter les exigences d'installation et de mise à niveau du cluster

Avant de procéder à la mise à niveau, vérifiez que votre configuration est compatible avec la nouvelle version de Cloud Service Mesh.

  1. Accédez au répertoire que vous avez spécifié dans --output_dir.

  2. Exécutez la commande suivante pour inspecter les exigences d'installation et de mise à niveau du cluster Kubernetes. Assurez-vous d'utiliser la version de istioctl distribuée avec la nouvelle version de Cloud Service Mesh.

    istioctl experimental precheck
    

Étape suivante