Mettre à niveau Anthos Service Mesh sur site

Ce guide explique comment mettre à niveau Anthos Service Mesh de la version 1.4.5+ or 1.5.4+ vers la version 1.5.10 sur GKE sur VMware.

Le redéploiement des composants du plan de contrôle d'Anthos Service Mesh prend environ 5 à 10 minutes. En outre, vous devez injecter de nouveaux proxys side-car dans toutes vos charges de travail afin qu'elles soient mises à jour avec la version actuelle d'Anthos Service Mesh. Le temps nécessaire à la mise à jour des proxys side-car dépend de nombreux facteurs, tels que le nombre de pods, le nombre de nœuds, les paramètres de scaling du déploiement, les budgets d'interruption de pod et d'autres paramètres de configuration. Une estimation approximative du temps nécessaire à la mise à jour des proxys side-car est de 100 pods par minute.

Préparer la mise à niveau

Cette section décrit les étapes que vous devez suivre pour mettre à niveau Anthos Service Mesh.

  1. Consultez la page Fonctionnalités compatibles et ce guide pour vous familiariser avec les fonctionnalités et le processus de mise à niveau.

  2. Si vous avez activé des fonctionnalités facultatives lors de l'installation de la version précédente d'Anthos Service Mesh, vous devez activer les mêmes fonctionnalités lors de la mise à niveau. Vous activez des fonctionnalités facultatives en ajoutant des options --set values ou en spécifiant l'option -f avec un fichier YAML lorsque vous exécutez la commande istioctl apply.

    Si vous effectuez une mise à niveau depuis la version 1.4.5 ou une version ultérieure d'Anthos Service Mesh, et que vous avez activé des fonctionnalités facultatives dans un fichier YAML, vous devez convertir ce fichier YAML de l'API IstioControlPlane vers l'API IstioOperator.

  3. Planifiez un temps d'arrêt. La mise à niveau peut prendre jusqu'à une heure en fonction de l'échelle du cluster. Notez que cela n'inclut pas le temps nécessaire au redéploiement des charges de travail afin de mettre à jour les proxys side-car.

Configurer votre environnement

Sur votre ordinateur local, installez et initialisez Google Cloud CLI.

Si gcloud CLI est déjà installé :

  1. Authentifiez-vous en utilisant gcloud CLI :

    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 la console Google Cloud, 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 Google Cloud CLI :

    gcloud config set project PROJECT_ID

Définir des identifiants et des autorisations

  1. Assurez-vous de disposer de kubectl pour le cluster d'utilisateur GKE sur VMware sur 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 continuer 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.5.10-asm.2-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.5.10-asm.2-linux.tar.gz.1.sig
    openssl dgst -verify - -signature istio-1.5.10-asm.2-linux.tar.gz.1.sig istio-1.5.10-asm.2-linux.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.5.10-asm.2-linux.tar.gz

    La commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.5.10-asm.2, et 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 GKE sur VMware.)

  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.5.10-asm.2-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.5.10-asm.2-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.5.10-asm.2-osx.tar.gz.1.sig istio-1.5.10-asm.2-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.5.10-asm.2-osx.tar.gz

    La commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.5.10-asm.2, et 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 GKE sur VMware.)

  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.5.10-asm.2-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.5.10-asm.2-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.5.10-asm.2-win.zip.1.sig istio-1.5.10-asm.2-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.5.10-asm.2-win.zip

    La commande crée un répertoire d'installation dans votre répertoire de travail actuel, nommé istio-1.5.10-asm.2, et 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 GKE sur VMware.)

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

Mettre à niveau Anthos Service Mesh

Cette section explique comment mettre à niveau 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

La mise à niveau nécessite de réinstaller les composants du plan de contrôle. L'exécution de l'opération prend environ cinq à dix minutes. Les anciens composants du plan de contrôle sont arrêtés, puis supprimés à mesure que les nouveaux sont installés. Vous pouvez vérifier la progression en consultant la valeur de la colonne AGE des charges de travail.

kubectl get pod -n istio-system

Exemple de résultat :

NAME                                     READY   STATUS        RESTARTS   AGE
istio-ingressgateway-5bfdf7c586-v6wxx    2/2     Terminating   0          25m
istio-ingressgateway-7b598c5557-b88md    2/2     Running       0          5m44s
istiod-78cdbbbdb-d7tps                   1/1     Running       0          5m16s
promsd-576b8db4d6-lqf64                  2/2     Running       1          5m26s

Dans cet exemple, il existe deux instances de istio-ingressgateway. L'instance contenant 25m dans la colonne AGE est en cours d'arrêt. Tous les autres composants sont installés.

Mettre à jour 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.