Mettre à niveau Apigee hybrid vers la version 1.10

{version_1.0.1 d

Cette procédure concerne la mise à niveau d'Apigee hybrid de la version 1.9.x vers la version 1.10.4 et depuis les versions précédentes d'Apigee hybrid de la version 1.10.x vers la version 1.10.4.

Utilisez les mêmes procédures pour les mises à niveau de versions mineures (par exemple, de la version 1.9 vers la version 1.10) et pour les mises à niveau de versions de correctifs (par exemple, de la version 1.10.0 vers la version 1.10.4).

Présentation de la mise à niveau vers la version 1.10.4

Les procédures de mise à niveau d'Apigee hybrid sont organisées dans les sections suivantes :

  1. Préparez la mise à niveau.
  2. Installez la version 1.10.4 de l'environnement d'exécution hybride.

Prérequis

Ces instructions de mise à niveau supposent que vous avez installé Apigee hybrid 1.9.x et que vous souhaitez le mettre à niveau vers la version 1.10.4. Si vous effectuez une mise à jour à partir d'une version antérieure, consultez les instructions figurant dans la section Mettre à niveau Apigee hybrid vers la version 1.9.

Préparer la mise à niveau vers la version 1.10

  1. Ces instructions utilisent la variable d'environnement APIGEECTL_HOME pour le répertoire de votre système de fichiers sur lequel vous avez installé apigeectl. Si nécessaire, accédez au répertoire apigeectl et définissez la variable en utilisant la commande suivante :

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    macOS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  2. Créez une copie de sauvegarde de votre répertoire $APIGEECTL_HOME/ version 1.9. Par exemple :
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME
  3. Sauvegardez votre base de données Cassandra en suivant les instructions figurant sur la page Sauvegarde et récupération de Cassandra.

Mettre à niveau votre version de Kubernetes

Vérifiez la version de votre plate-forme Kubernetes et, si nécessaire, mettez à niveau votre plate-forme Kubernetes vers une version compatible avec les versions 1.9 et 1.10 d'Apigee hybrid. Si vous avez besoin d'aide, consultez la documentation de votre plate-forme.

Installer l'environnement d'exécution hybride 1.10.4

  1. Vérifiez que vous êtes bien dans le répertoire de base hybrid (c'est-à-dire le répertoire parent du répertoire dans lequel se trouve le fichier exécutable apigeectl) :
    cd $APIGEECTL_HOME/..
  2. Téléchargez le package de la version correspondant à votre système d'exploitation à l'aide de la commande suivante : Veillez à sélectionner la bonne plate-forme dans le tableau suivant :

    Linux

    Linux 64 bits :

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.4/apigeectl_linux_64.tar.gz

    macOS

    Mac 64 bits :

    curl -LO \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.4/apigeectl_mac_64.tar.gz

    Windows

    Windows 64 bits :

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.4/apigeectl_windows_64.zip
  3. Remplacez le nom du répertoire apigeectl/ actuel par un nom de répertoire de sauvegarde. Exemple :

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/

    macOS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9 
  4. Extrayez le contenu du fichier gzip téléchargé dans votre répertoire de base hybride. Le répertoire de base hybrid est le répertoire dans lequel se trouve le répertoire apigeectl-v1.9 renommé :

    Linux

    tar xvzf filename.tar.gz -C ./

    macOS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  5. Par défaut, le contenu du fichier tar est décompressé dans un répertoire dont le nom contient la version et la plate-forme. Exemple : ./apigeectl_1.10.4-xxxxxxx_linux_64. Changez le nom de ce répertoire en apigeectl à l'aide de la commande suivante :

    Linux

    mv apigeectl_1.10.4-xxxxxxx_linux_64 apigeectl

    macOS

    mv apigeectl_1.10.4-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.10.4-xxxxxxx_windows_64 apigeectl
  6. Accédez au répertoire apigeectl :
    cd ./apigeectl

    Ce répertoire correspond au répertoire d'accueil apigeectl. Il s'agit de l'emplacement de la commande exécutable apigeectl.

  7. Ces instructions utilisent la variable d'environnement $APIGEECTL_HOME pour le répertoire de votre système de fichiers dans lequel l'utilitaire apigeectl est installé. Si nécessaire, accédez au répertoire apigeectl et définissez la variable en utilisant la commande suivante :

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    macOS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  8. Vérifiez la version de apigeectl à l'aide de la commande version :
    ./apigeectl version
    Version: 1.10.4
  9. Créez un répertoire hybrid-base-directory/hybrid-files, puis accédez-y. Le répertoire hybrid-files correspond à l'emplacement où se trouvent les fichiers de configuration, tels que le fichier de remplacement, les certificats et les comptes de service. Exemple :

    Linux

    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files

    macOS

    mkdir $APIGEECTL_HOME/../hybrid-files
    cd $APIGEECTL_HOME/../hybrid-files

    Windows

    mkdir %APIGEECTL_HOME%/../hybrid-files
    cd %APIGEECTL_HOME%/../hybrid-files
  10. Vérifiez que kubectl est défini sur le bon contexte à l'aide de la commande suivante. Le contexte actuel doit être défini sur le cluster dans lequel vous mettez à niveau Apigee hybrid.
    kubectl config get-contexts | grep \*
  11. Dans le répertoire hybrid-files :
    1. Mettez à jour les liens symboliques suivants de sorte qu'ils pointent vers $APIGEECTL_HOME. Ces liens vous permettent d'exécuter la commande apigeectl nouvellement installée à partir du répertoire hybrid-files :
      ln -nfs $APIGEECTL_HOME/tools tools
      ln -nfs $APIGEECTL_HOME/config config
      ln -nfs $APIGEECTL_HOME/templates templates
      ln -nfs $APIGEECTL_HOME/plugins plugins
    2. Pour vérifier que les liens symboliques ont été créés correctement, exécutez la commande suivante et assurez-vous que les chemins d'accès aux liens pointent vers les emplacements appropriés :
      ls -l | grep ^l
  12. Effectuez une initialisation en test à blanc (dry run) pour rechercher d'éventuelles erreurs :
    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client

    OVERRIDES_FILE est le nom de votre fichier de remplacement, par exemple ./overrides/overrides.yaml.

  13. Si aucune erreur ne s'affiche, initialisez Apigee hybrid 1.10.4 :
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  14. Vérifiez l'état d'initialisation :
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    En cas de réussite, le résultat indique : All containers ready.

    kubectl describe apigeeds -n apigee

    Dans le résultat, recherchez State: running.

  15. Recherchez les erreurs à l'aide d'une simulation de la commande apply utilisant l'option --dry-run :
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  16. Si aucune erreur ne s'affiche, appliquez vos remplacements. Sélectionnez et suivez les instructions pour les environnements de production ou hors production, selon votre installation.

    Production

    Pour les environnements de production, mettez à niveau chaque composant Apigee hybrid individuellement, puis vérifiez l'état du composant mis à niveau avant de passer au composant suivant.

    1. Assurez-vous d'être dans le répertoire hybrid-files.
    2. Appliquez vos remplacements pour mettre à niveau Cassandra :
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
    3. Vérifiez que l'opération est terminée :
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

      Ne passez à l'étape suivante que lorsque les pods sont prêts.

    4. Appliquez vos remplacements pour mettre à niveau les composants Telemetry, puis vérifiez que l'opération est terminée :
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    5. Afficher les composants Redis :
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
    6. Appliquez vos remplacements pour mettre à niveau les composants au niveau de l'organisation (MART, Watcher et Apigee Connect), puis vérifiez que l'opération est terminée :
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    7. Appliquez vos remplacements pour mettre à niveau vos environnements. Deux possibilités s'offrent à vous :
      • Environnement par environnement : appliquez vos remplacements à un environnement à la fois et vérifiez que l'opération est terminée. Répétez cette étape pour chaque environnement :
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --env ENV_NAME
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

        ENV_NAME est le nom de l'environnement que vous mettez à niveau.

      • Tous les environnements à la fois : appliquez vos remplacements à tous les environnements en même temps et vérifiez que l'opération est terminée :
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --all-envs
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    8. Appliquez vos remplacements pour mettre à niveau les composants virtualhosts, puis vérifiez que l'opération est terminée :
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Hors production

    Dans la plupart des environnements hors production, de démonstration ou expérimentaux, vous pouvez appliquer vos remplacements simultanément sur tous les composants. Si votre environnement hors production est volumineux et complexe, ou s'il imite fidèlement un environnement de production, vous pouvez suivre les instructions de mise à niveau des environnements de production.

    1. Assurez-vous d'être dans le répertoire hybrid-files.
    2. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
    3. Vérifiez l'état :
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
  17. Installez 1.10.3-hotfix.1. Pour en savoir plus, consultez la page hybrid 1.10.3-hotfix.1 dans les notes de version d'Apigee.
  18. Installez 1.10.3-hotfix.2. Pour en savoir plus, consultez la page hybrid 1.10.3-hotfix.2 dans les notes de version d'Apigee.
  19. Installez 1.10.3-hotfix.3. Pour en savoir plus, consultez la page hybrid 1.10.3-hotfix.3 dans les notes de version d'Apigee.
  20. Installez 1.10.3-hotfix.4. Pour en savoir plus, consultez la page hybrid 1.10.3-hotfix.4 dans les notes de version d'Apigee.

Installez 1.10.4-hotfix.1.

Exécutez les commandes suivantes pour installer la version de correctif, 1.10.4-hotfix.1. Pour en savoir plus, consultez la page hybrid 1.10.4-hotfix.1 dans les notes de version d'Apigee.

  1. Ouvrez le fichier de remplacement.
  2. Commencez par mettre à jour votre fichier de remplacement. Suivez les instructions correspondant à l'outil que vous utilisez pour gérer Apigee hybrid, Helm ou apigeectl :

    Helm

    1. Dans le stanza istiod, remplacez la version du tag d'image (le cas échéant) par la version 1.17.8. Par exemple :
      istiod:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-istiod"
          tag: "1.17.8-asm.20-distroless"
    2. Dans le stanza apigeeIngressGateway, remplacez la version du tag d'image (le cas échéant) par la version 1.17.8. Par exemple :
      apigeeIngressGateway:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
          tag: "1.17.8-asm.20-distroless"
    3. Enregistrez le fichier.

    apigeectl

    1. Dans le stanza istiod, remplacez la version du tag d'image (le cas échéant) par la version 1.17.8. Par exemple :
      istiod:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-istiod"
          tag: "1.17.8-asm.20-distroless"
    2. Selon la manière dont vous avez choisi d'installer Apigee hybrid, vous pouvez avoir un stanza ingressGateway ou ingressGateways. Recherchez le stanza qui s'affiche dans votre fichier de remplacement et remplacez la version du tag d'image (le cas échéant) par la version 1.17.8. Par exemple, si vous disposez d'un stanza ingressGateway:
      ingressGateway:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
          tag: "1.17.8-asm.20-distroless"

      Ou, si vous avez un stanza ingressGateways:

      ingressGateways:
        - name: gateway1
          image:
            url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
            tag: "1.17.8-asm.20-distroless"
          ...
        - name: gateway2
          image:
            url: "gcr.io/apigee-release/hybrid/apigee-asm-ingress"
            tag: "1.17.8-asm.20-distroless"
          ... 
    3. Enregistrez le fichier.
  3. Ensuite, appliquez les modifications. Suivez les instructions correspondant à l'outil que vous utilisez pour gérer Apigee hybrid, Helm ou apigeectl :

    Helm

    1. Installez le chart apigee-ingress-manager à l'aide de la commande suivante :
      helm upgrade ingress-manager apigee-ingress-manager/ \
        --install \
        --namespace "YOUR_APIGEE_NAMESPACE" \
        --atomic \
        -f OVERRIDES_FILE
      
    2. Installez le chart apigee-org à l'aide de la commande suivante :
      helm upgrade ORG_NAME apigee-org/ \
          --install \
          --namespace "YOUR_APIGEE_NAMESPACE" \
          --atomic \
          -f OVERRIDES_FILE
    3. Vérifiez l'état des pods :
      kubectl get pods -n YOUR_APIGEE_NAMESPACE

    apigeectl

    1. Exécutez la commande suivante pour initialiser le composant istiod:
      $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    2. Exécutez la commande suivante pour appliquer les modifications aux composants d'entrée Apigee. Si vous avez plusieurs organisations, répétez cette commande pour chacune d'elles:
      $APIGEECTL_HOME/apigeectl apply --org -f OVERRIDES_FILE
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    3. Vérifiez l'état des pods :
      kubectl get pods -n YOUR_APIGEE_NAMESPACE

Effectuer un rollback de la mise à niveau

Suivez ces étapes ci-dessous pour effectuer le rollback vers une mise à niveau précédente :

  1. Nettoyez les tâches terminées pour l'espace de noms d'exécution hybride, où NAMESPACE correspond à l'espace de noms spécifié dans votre fichier de remplacement, si vous avez spécifié un espace de noms. Si ce n'est pas le cas, l'espace de noms par défaut est apigee :
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. Nettoyez les tâches terminées pour l'espace de noms apigee-system :
    kubectl delete job -n apigee-system \
      $(kubectl get job -n apigee-system \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  3. Modifiez la variable APIGEECTL_HOME pour qu'elle pointe en direction du répertoire contenant la version précédente de apigeectl. Par exemple :
    export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
  4. Dans le répertoire racine de l'installation à restaurer, exécutez apigeectl apply, vérifiez l'état de vos pods, puis exécutez apigeectl init. Veillez à utiliser le fichier de remplacement d'origine pour la version vers laquelle vous souhaitez effectuer un rollback :
    1. Dans le répertoire hybrid-files, exécutez apigeectl apply :
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

      ORIGINAL_OVERRIDES_FILE correspond au chemin d'accès relatif et au nom du fichier de remplacement pour l'installation hybride de votre version précédente, par exemple, ./overrides/overrides1.9.yaml.

    2. Vérifiez l'état des pods :
      kubectl -n NAMESPACE get pods

      NAMESPACE est votre espace de noms Apigee hybrid.

    3. Vérifiez l'état de apigeeds :
      kubectl describe apigeeds -n apigee

      Le résultat doit se présenter sous la forme suivante :

      Status:
        Cassandra Data Replication:
        Cassandra Pod Ips:
          10.8.2.204
        Cassandra Ready Replicas:  1
        Components:
          Cassandra:
            Last Successfully Released Version:
              Revision:  v1-f8aa9a82b9f69613
              Version:   v1
            Replicas:
              Available:  1
              Ready:      1
              Total:      1
              Updated:    1
            State:        running
        Scaling:
          In Progress:         false
          Operation:
          Requested Replicas:  0
        State:                 running
      

      Ne passez à l'étape suivante que lorsque le pod apigeeds est en cours d'exécution.

    4. Exécutez la commande suivante pour noter les valeurs de votre nouveau nombre d'instances répliquées pour le processeur de messages après la mise à niveau. Si ces valeurs ne correspondent pas à celles que vous avez définies précédemment, modifiez-les dans votre fichier de remplacement en fonction de votre configuration précédente.
      apigeectl apply -f ORIGINAL_OVERRIDES_FILE --dry-run=client --print-yaml --env ENV_NAME 2>/dev/null |grep "runtime:" -A 25 -B 1| grep "autoScaler" -A 2

      Le résultat doit se présenter sous la forme suivante :

            autoScaler:
              minReplicas: 2
              maxReplicas: 10
    5. Exécutez apigeectl init :
      $APIGEECTL_HOME/apigeectl init -f ORIGINAL_OVERRIDES_FILE