Configuration pour l'installation d'Anthos Service Mesh sur GKE

Cette page décrit la configuration d'Anthos Service Mesh pour votre projet Cloud et vos clusters Google Kubernetes Engine (GKE) pour un maillage composé de clusters appartenant au même projet. Lorsque vous utilisez le script fourni par Google, install_asm, celui-ci peut configurer le projet et le cluster à votre place si vous incluez l'option --enable_all ou les options d'activation plus précises. Si vous préférez effectuer la configuration vous-même plutôt que de demander à install_asm d'effectuer les modifications, suivez les étapes décrites sur cette page. Si une version précédente d'Anthos Service Mesh est déjà installée, vous n'avez pas besoin de modifier votre projet ou votre cluster avant d'utiliser.install_asm pour passer à à la dernière version d'Anthos Service Mesh.

Avant de commencer

Configurer le projet

  1. Obtenez l'ID et le numéro du projet dans lequel le cluster a été créé.

    gcloud

    Exécutez la commande suivante :

    gcloud projects list
    

    Console

    1. Accédez à la page Tableau de bord de la console Google Cloud.

      Accéder à la page "Tableau de bord"

    2. Cliquez sur la liste déroulante en haut de la page. Sélectionnez votre projet dans la fenêtre Sélectionner qui s'affiche.

      L'ID et le numéro du projet sont tous deux affichés sur la fiche Informations sur le projet du tableau de bord du projet.

  2. Créez les variables d'environnement suivantes :

    • Définissez le pool de charges de travail à l'aide de l'ID du projet :

      export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
      
    • Définissez l'ID de maillage à l'aide du numéro de projet :

      export MESH_ID="proj-PROJECT_NUMBER"
      
  3. Définissez les rôles IAM (gestion de l'authentification et des accès). Si vous êtes un propriétaire de projet, vous disposez de toutes les autorisations nécessaires pour terminer l'installation. Si vous n'êtes pas un propriétaire de projet, quelqu'un doit vous accorder les rôles IAM spécifiques suivants. Dans la commande suivante, remplacez PROJECT_ID par l'ID du projet de l'étape précédente et GCP_EMAIL_ADDRESS par le compte que vous utilisez pour vous connecter à Google Cloud.

    ROLES=(
    'roles/servicemanagement.admin' \
    'roles/serviceusage.serviceUsageAdmin' \
    'roles/meshconfig.admin' \
    'roles/compute.admin' \
    'roles/container.admin' \
    'roles/resourcemanager.projectIamAdmin' \
    'roles/iam.serviceAccountAdmin' \
    'roles/iam.serviceAccountKeyAdmin' \
    'roles/gkehub.admin')
    for role in "${ROLES[@]}"
    do
      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "user:GCP_EMAIL_ADDRESS" \
        --role="$role"
    done
    

    Si vous incluez l'option --enable_all ou --enable_gcp_iam_roles lorsque vous exécutez install_asm, celle-ci définit les rôles IAM requis pour vous.

  4. Activez les API Google suivantes :

    gcloud services enable \
        --project=PROJECT_ID \
        container.googleapis.com \
        compute.googleapis.com \
        monitoring.googleapis.com \
        logging.googleapis.com \
        cloudtrace.googleapis.com \
        meshca.googleapis.com \
        meshtelemetry.googleapis.com \
        meshconfig.googleapis.com \
        iamcredentials.googleapis.com \
        gkeconnect.googleapis.com \
        gkehub.googleapis.com \
        cloudresourcemanager.googleapis.com \
        stackdriver.googleapis.com
    

    L'activation des API peut prendre une minute ou plus. Lorsque les API sont activées, un résultat semblable au suivant s'affiche :

    Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished
    successfully.
    

    Si vous incluez l'option --enable_all ou --enable_apis lorsque vous exécutez la commande install_asm, celle-ci active les API requises pour vous.

Configurer votre cluster

Si vous incluez l'option --enable_all ou l'une des options d'activation plus précise, le script install_asm configure votre cluster pour vous.

  1. Définissez la zone ou la région par défaut pour Google Cloud CLI. Si vous ne définissez pas la valeur par défaut ici, veillez à spécifier l'option --zone ou --region dans les commandes gcloud container clusters de cette page.

    • Si vous disposez d'un cluster à zone unique, définissez la zone par défaut :

      gcloud config set compute/zone CLUSTER_LOCATION
      
    • Si vous disposez d'un cluster régional, définissez la région par défaut :

      gcloud config set compute/region CLUSTER_LOCATION
      
  2. Définissez le libellé mesh_id sur le cluster. Si votre cluster contient des libellés existants que vous souhaitez conserver, vous devez les inclure lors de l'ajout du libellé mesh_id.

    1. Pour savoir si votre cluster possède des libellés existants, procédez comme suit :

      gcloud container clusters describe CLUSTER_NAME \
          --project PROJECT_ID
      

      Recherchez le champ resourceLabels dans le résultat. Chaque libellé est stocké sur une ligne distincte du champ resourceLabels, par exemple :

      resourceLabels:
        csm: ''
        env: dev
        release: stable

      Pour plus de commodité, vous pouvez ajouter les libellés à une variable d'environnement. Dans la commande suivante, remplacez YOUR_EXISTING_LABELS par la liste des libellés existants de votre cluster (séparés par une virgule) au format KEY=VALUE, par exemple : env=dev,release=stable

      export EXISTING_LABELS="YOUR_EXISTING_LABELS"
      
    2. Définissez le libellé mesh_id :

      • Si votre cluster contient des libellés existants que vous souhaitez conserver, mettez à jour le cluster avec le libellé mesh_id et les libellés existants :

        gcloud container clusters update CLUSTER_NAME \
            --project PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
        
      • Si votre cluster ne comporte aucun libellé existant, mettez-le à jour uniquement avec le libellé mesh_id :

        gcloud container clusters update CLUSTER_NAME \
            --project=PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID}
        
  3. Activez Workload Identity

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --workload-pool=${WORKLOAD_POOL}
    

    L'activation de Workload Identity peut nécessiter de 10 à 15 minutes.

  4. 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 données, 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 : {}.

  5. Activez Cloud Monitoring et Cloud Logging sur GKE :

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --logging=SYSTEM,WORKLOAD \
        --monitoring=SYSTEM
    

Votre projet et votre cluster GKE sont maintenant prêts pour une nouvelle installation ou une migration depuis Istio à l'aide de install_asm. Lorsque vous installez Anthos Service Mesh à l'aide de install_asm, le script réalise les opérations suivantes :

  1. Il valide votre projet et votre cluster.
  2. Crée un compte de service dans votre projet pour permettre aux composants du plan de contrôle d'accéder aux données et aux ressources du projet.
  3. Il configure les fichiers de ressources personnalisées IstioOperator requis avec les informations concernant votre projet et votre cluster afin d'activer les fonctionnalités par défaut.
  4. Il appelle istioctl install. Vous pouvez spécifier des fichiers de ressources personnalisées IstioOperator supplémentaires lorsque vous appelez install_asm pour activer les fonctionnalités facultatives.

Étapes suivantes