Upgrade di Apigee hybrid alla versione 1.10

Questa procedura riguarda l'upgrade dalla versione 1.9.x di Apigee hybrid alla versione 1.10.5 di Apigee hybrid e dalle release precedenti di hybrid 1.10.x alla versione 1.10.5.

Utilizza le stesse procedure per gli upgrade delle versioni minori (ad esempio dalla versione 1.9 alla 1.10) e per gli upgrade delle release di patch (ad esempio dalla 1.10.0 alla 1.10.5).

Panoramica dell'upgrade alla versione 1.10.5

Le procedure per l'upgrade di Apigee hybrid sono organizzate nelle seguenti sezioni:

  1. Preparati all'upgrade.
  2. Installa la versione 1.10.5 del runtime di hybrid.

Prerequisiti

Queste istruzioni per l'upgrade presuppongono che tu abbia installato la versione 1.9.x di Apigee hybrid e che tu voglia eseguire l'upgrade alla versione 1.10.5. Se esegui l'aggiornamento da una versione precedente, consulta le istruzioni per eseguire l'upgrade di Apigee hybrid alla versione 1.9.

Prepararsi all'upgrade alla versione 1.10

  1. Queste istruzioni utilizzano la variabile di ambiente APIGEECTL_HOME per la directory nel file system in cui hai installato apigeectl. Se necessario, cambia directory nella directory apigeectl e definisci la variabile con il seguente comando:

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  2. Crea una copia di backup della directory $APIGEECTL_HOME/ della versione 1.9. Ad esempio:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME
  3. Esegui il backup del database Cassandra seguendo le istruzioni riportate in Backup e recupero di Cassandra.

Esegui l'upgrade della versione di Kubernetes

Controlla la versione della piattaforma Kubernetes e, se necessario, esegui l'upgrade a una versione supportata sia da hybrid 1.9 sia da hybrid 1.10. Se hai bisogno di aiuto, consulta la documentazione della tua piattaforma.

Installa il runtime di hybrid 1.10.5

  1. Assicurati di essere nella directory di base ibrida (la directory principale in cui si trova il file eseguibile apigeectl):
    cd $APIGEECTL_HOME/..
  2. Scarica il pacchetto della release per il tuo sistema operativo utilizzando il seguente comando. Assicurati di selezionare la tua piattaforma nella tabella seguente:

    Linux

    Linux a 64 bit:

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

    Mac OS

    Mac 64 bit:

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

    Windows

    Windows a 64 bit:

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_windows_64.zip
  3. Rinomina la directory apigeectl/ attuale con il nome di una directory di backup. Ad esempio:

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.9/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.9 
  4. Estrai i contenuti del file gzip scaricato nella directory di base ibrida. La directory di base ibrida è la directory in cui si trova la directory apigeectl-v1.9 rinominata:

    Linux

    tar xvzf filename.tar.gz -C ./

    Mac OS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  5. Per impostazione predefinita, i contenuti del file tar vengono espansi in una directory con la versione e la piattaforma nel nome. Ad esempio: ./apigeectl_1.10.5-xxxxxxx_linux_64. Rinomina la directory in apigeectl utilizzando il seguente comando:

    Linux

    mv apigeectl_1.10.5-xxxxxxx_linux_64 apigeectl

    Mac OS

    mv apigeectl_1.10.5-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.10.5-xxxxxxx_windows_64 apigeectl
  6. Passa alla directory apigeectl:
    cd ./apigeectl

    Questa directory è la home directory di apigeectl. È qui che si trova il comando eseguibile apigeectl.

  7. Queste istruzioni utilizzano la variabile di ambiente $APIGEECTL_HOME per la directory nel file system in cui è installata l'utilità apigeectl. Se necessario, cambia directory nella directory apigeectl e definisci la variabile con il seguente comando:

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  8. Verifica la versione di apigeectl con il comando version:
    ./apigeectl version
    Version: 1.10.5
  9. Crea una directory hybrid-base-directory/hybrid-files, quindi spostati al suo interno. La directory hybrid-files è il luogo in cui si trovano i file di configurazione, come il file delle sostituzioni, i certificati e gli account di servizio. Ad esempio:

    Linux

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

    Mac OS

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

    Windows

    mkdir %APIGEECTL_HOME%/../hybrid-files
    cd %APIGEECTL_HOME%/../hybrid-files
  10. Verifica che kubectl sia impostato sul contesto corretto utilizzando il seguente comando. Il contesto corrente deve essere impostato sul cluster in cui stai eseguendo l'upgrade di Apigee hybrid.
    kubectl config get-contexts | grep \*
  11. Nella directory hybrid-files:
    1. Aggiorna i seguenti link simbolici a $APIGEECTL_HOME. Questi link ti consentono di eseguire il comando apigeectl appena installato dall'interno della directory 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. Per verificare che i link simbolici siano stati creati correttamente, esegui il seguente comando e assicurati che i percorsi dei link rimandino alle posizioni corrette:
      ls -l | grep ^l
  12. Apporta la seguente modifica al file overrides.yaml per attivare il grafico apigee-operator o utilizzare il tag corretto 1.10.5-hotfix.1:
      ao:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-operators"
          tag: "1.10.5-hotfix.1"
      
  13. Esegui un'inizializzazione di prova per verificare la presenza di errori:
    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client

    dove OVERRIDES_FILE è il nome del file delle sostituzioni, ad esempio ./overrides/overrides.yaml.

  14. Se non ci sono errori, inizializza la versione ibrida 1.10.5:
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  15. Controlla lo stato dell'inizializzazione:
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    In caso di esito positivo, l'output è: All containers ready.

    kubectl describe apigeeds -n apigee

    Nell'output, cerca State: running.

  16. Verifica la presenza di errori con una prova simulata del comando apply utilizzando il flag --dry-run:
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  17. Se non sono presenti errori, applica le sostituzioni. Seleziona e segui le istruzioni per gli ambienti di produzione o per gli ambienti non di produzione, a seconda dell'installazione.

    Produzione

    Per gli ambienti di produzione, esegui l'upgrade di ciascun componente ibrida singolarmente e controlla lo stato del componente di cui è stato eseguito l'upgrade prima di passare al componente successivo.

    1. Assicurati di essere nella directory hybrid-files.
    2. Applica le sostituzioni per eseguire l'upgrade di Cassandra:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
    3. Controlla il completamento:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

      Vai al passaggio successivo solo quando i pod sono pronti.

    4. Applica le sostituzioni per eseguire l'upgrade dei componenti di Telemetria e controlla il completamento:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    5. Avvia i componenti Redis:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
    6. Applica le sostituzioni per eseguire l'upgrade dei componenti a livello di organizzazione (MART, Watcher e Apigee Connect) e controlla il completamento:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    7. Applica le sostituzioni per eseguire l'upgrade degli ambienti. Hai due opzioni:
      • Per ambiente: applica le sostituzioni a un ambiente alla volta e controlla il completamento. Ripeti questo passaggio per ogni ambiente:
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --env ENV_NAME
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

        dove ENV_NAME è il nome dell'ambiente di cui stai eseguendo l'upgrade.

      • Tutti gli ambienti contemporaneamente: applica le sostituzioni a tutti gli ambienti contemporaneamente e controlla il completamento:
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --all-envs
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    8. Applica le sostituzioni per eseguire l'upgrade dei componenti virtualhosts e controlla il completamento:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Non prod

    Nella maggior parte degli ambienti non di produzione, di prova o sperimentali, puoi applicare le sostituzioni a tutti i componenti contemporaneamente. Se il tuo ambiente non di produzione è di grandi dimensioni e complesso o se rispecchia molto da vicino un ambiente di produzione, ti consigliamo di utilizzare le istruzioni per l'upgrade degli ambienti di produzione.

    1. Assicurati di essere nella directory hybrid-files.
    2. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
    3. Controlla lo stato:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

Rollback di un upgrade

Per eseguire il rollback di un upgrade precedente:

  1. Ripulisci i job completati per lo spazio dei nomi dell'ambiente di runtime ibrido, dove NAMESPACE è lo spazio dei nomi specificato nel file degli override, se ne hai specificato uno. In caso contrario, lo spazio dei nomi predefinito è apigee:
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. Elimina i job completati per lo spazio dei nomi apigee-system:
    kubectl delete job -n apigee-system \
      $(kubectl get job -n apigee-system \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  3. Modifica la variabile APIGEECTL_HOME in modo che punti alla directory che contiene la versione precedente di apigeectl. Ad esempio:
    export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
  4. Nella directory principale dell'installazione a cui vuoi eseguire il rollback, esegui apigeectl apply, controlla lo stato dei pod e poi esegui apigeectl init. Assicurati di utilizzare il file delle sostituzioni originale per la versione di destinazione del rollback:
    1. Nella directory hybrid-files, esegui apigeectl apply:
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

      dove ORIGINAL_OVERRIDES_FILE è il percorso e il nome del file delle sostituzioni per l'installazione ibrida della versione precedente, ad esempio ./overrides/overrides1.9.yaml.

    2. Controlla lo stato dei pod:
      kubectl -n NAMESPACE get pods

      dove NAMESPACE è il tuo spazio dei nomi Apigee hybrid.

    3. Controlla lo stato di apigeeds:
      kubectl describe apigeeds -n apigee

      L'output dovrebbe avere il seguente aspetto:

      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

      Vai al passaggio successivo solo quando il pod apigeeds è in esecuzione.

    4. Esegui il seguente comando per annotare i valori del nuovo conteggio delle repliche per il gestore dei messaggi dopo l'upgrade. Se questi valori non corrispondono a quelli impostati in precedenza, modifica i valori nel file delle sostituzioni in modo che corrispondano alla configurazione precedente.
      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

      L'output dovrebbe avere il seguente aspetto:

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