Actualizar Apigee Hybrid a la versión 1.10

En este procedimiento se explica cómo actualizar de Apigee hybrid 1.9.x a Apigee hybrid 1.10.5 y de versiones anteriores de hybrid 1.10.x a la versión 1.10.5.

Sigue los mismos procedimientos para actualizar versiones secundarias (por ejemplo, de la versión 1.9 a la 1.10) y para actualizar versiones de parche (por ejemplo, de la versión 1.10.0 a la 1.10.5).

Información general sobre la actualización a la versión 1.10.5

Los procedimientos para actualizar Apigee hybrid se organizan en las siguientes secciones:

  1. Prepárate para cambiar a un plan superior.
  2. Instala la versión 1.10.5 del entorno de ejecución híbrido.

Requisitos previos

En estas instrucciones de actualización se presupone que tienes instalada la versión 1.9.x de Apigee hybrid y que quieres actualizarla a la versión 1.10.5. Si vas a actualizar desde una versión anterior, consulta las instrucciones para actualizar Apigee hybrid a la versión 1.9.

Prepararse para actualizar a la versión 1.10

  1. En estas instrucciones se usa la variable de entorno APIGEECTL_HOME para el directorio del sistema de archivos en el que has instalado apigeectl. Si es necesario, cambia al directorio apigeectl y define la variable con el siguiente comando:

    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. Crea una copia de seguridad del directorio 1.9 de $APIGEECTL_HOME/. Por ejemplo:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.9-backup.tar.gz $APIGEECTL_HOME
  3. Crea una copia de seguridad de tu base de datos de Cassandra siguiendo las instrucciones de Copia de seguridad y recuperación de Cassandra.

Actualizar la versión de Kubernetes

Comprueba la versión de tu plataforma Kubernetes y, si es necesario, actualízala a una versión compatible con las versiones 1.9 y 1.10 de Hybrid. Si necesitas ayuda, consulta la documentación de tu plataforma.

Instalar el entorno de ejecución híbrido 1.10.5

  1. Asegúrate de que estás en el directorio base híbrido (el elemento superior del directorio en el que se encuentra el archivo ejecutable apigeectl):
    cd $APIGEECTL_HOME/..
  2. Descarga el paquete de lanzamiento de tu sistema operativo con el siguiente comando. Selecciona tu plataforma en la siguiente tabla:

    Linux

    Linux de 64 bits:

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

    macOS

    Mac de 64 bits:

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

    Windows

    Windows (64 bits):

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.10.5/apigeectl_windows_64.zip
  3. Cambia el nombre del directorio apigeectl/ actual por el de un directorio de copia de seguridad. Por ejemplo:

    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. Extrae el contenido del archivo gzip descargado en el directorio base híbrido. El directorio base híbrido es el directorio en el que se encuentra el directorio apigeectl-v1.9 renombrado:

    Linux

    tar xvzf filename.tar.gz -C ./

    macOS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  5. De forma predeterminada, el contenido del archivo tar se descomprime en un directorio cuyo nombre incluye la versión y la plataforma. Por ejemplo: ./apigeectl_1.10.5-xxxxxxx_linux_64. Cambia el nombre de ese directorio a apigeectl con el siguiente comando:

    Linux

    mv apigeectl_1.10.5-xxxxxxx_linux_64 apigeectl

    macOS

    mv apigeectl_1.10.5-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.10.5-xxxxxxx_windows_64 apigeectl
  6. Cambia al directorio apigeectl:
    cd ./apigeectl

    Este directorio es el apigeectldirectorio principal. Es donde se encuentra el comando ejecutable apigeectl.

  7. En estas instrucciones se usa la variable de entorno $APIGEECTL_HOME para el directorio de tu sistema de archivos en el que está instalada la utilidad apigeectl. Si es necesario, cambia al directorio apigeectl y define la variable con el siguiente comando:

    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. Verifica la versión de apigeectl con el comando version:
    ./apigeectl version
    Version: 1.10.5
  9. Crea un directorio hybrid-base-directory/hybrid-files y, a continuación, muévete a él. El directorio hybrid-files es donde se encuentran los archivos de configuración, como el archivo de anulaciones, los certificados y las cuentas de servicio. Por ejemplo:

    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. Verifica que kubectl esté configurado en el contexto correcto con el siguiente comando. El contexto actual debe ser el clúster en el que vas a actualizar Apigee Hybrid.
    kubectl config get-contexts | grep \*
  11. En el directorio hybrid-files:
    1. Actualiza los siguientes enlaces simbólicos a $APIGEECTL_HOME. Estos enlaces te permiten ejecutar el comando apigeectl recién instalado desde el directorio 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. Para comprobar que los enlaces simbólicos se han creado correctamente, ejecuta el siguiente comando y asegúrate de que las rutas de los enlaces apuntan a las ubicaciones correctas:
      ls -l | grep ^l
  12. Haz el siguiente cambio en tu archivo overrides.yaml para que el gráfico apigee-operator use la etiqueta correcta, 1.10.5-hotfix.1:
      ao:
        image:
          url: "gcr.io/apigee-release/hybrid/apigee-operators"
          tag: "1.10.5-hotfix.1"
      
  13. Haz una inicialización de prueba para comprobar si hay errores:
    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client

    Donde OVERRIDES_FILE es el nombre del archivo de anulaciones. Por ejemplo, ./overrides/overrides.yaml.

  14. Si no hay errores, inicializa la versión 1.10.5 de Hybrid:
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  15. Comprueba el estado de inicialización:
    $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    Si la operación se realiza correctamente, el resultado será: All containers ready.

    kubectl describe apigeeds -n apigee

    En el resultado, busca State: running.

  16. Comprueba si hay errores con una prueba de funcionamiento del comando apply mediante la marca --dry-run:
    $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --dry-run=client
  17. Si no hay errores, aplica las anulaciones. Seleccione y siga las instrucciones para entornos de producción o de no producción, según su instalación.

    Producción

    En los entornos de producción, actualiza cada componente híbrido por separado y comprueba el estado del componente actualizado antes de pasar al siguiente.

    1. Asegúrate de que estás en el directorio hybrid-files.
    2. Aplica las anulaciones para actualizar Cassandra:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --datastore
    3. Comprobación completada:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

      Continúa con el siguiente paso solo cuando los pods estén listos.

    4. Aplica las anulaciones para actualizar los componentes de Telemetría y comprueba que se han completado:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --telemetry
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    5. Inicia los componentes de Redis:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --redis
    6. Aplica las anulaciones para actualizar los componentes a nivel de organización (MART, Watcher y Apigee Connect) y comprueba si se han completado:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --org
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    7. Aplica las anulaciones para actualizar tus entornos. Tienes dos opciones:
      • Entorno por entorno: aplica las anulaciones a un entorno cada vez y comprueba que se completan. Repite este paso para cada entorno:
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --env ENV_NAME
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

        Donde ENV_NAME es el nombre del entorno que vas a actualizar.

      • Todos los entornos a la vez: aplica las anulaciones a todos los entornos a la vez y comprueba si se han completado:
        $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --all-envs
        $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE
    8. Aplica las anulaciones para actualizar los componentes virtualhosts y comprueba si se han completado:
      $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE --settings virtualhosts
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

    No producción

    En la mayoría de los entornos que no son de producción, de demostración o experimentales, puedes aplicar las anulaciones a todos los componentes a la vez. Si tu entorno de no producción es grande y complejo o se parece mucho a un entorno de producción, te recomendamos que sigas las instrucciones para actualizar entornos de producción.

    1. Asegúrate de que estás en el directorio hybrid-files.
    2. $APIGEECTL_HOME/apigeectl apply -f OVERRIDES_FILE
    3. Comprueba el estado:
      $APIGEECTL_HOME/apigeectl check-ready -f OVERRIDES_FILE

Restaurar una versión anterior de una actualización

Sigue estos pasos para revertir una actualización anterior:

  1. Limpia las tareas completadas del espacio de nombres del tiempo de ejecución híbrido, donde NAMESPACE es el espacio de nombres especificado en el archivo de anulaciones (si has especificado alguno). Si no es así, el espacio de nombres predeterminado es apigee:
    kubectl delete job -n NAMESPACE \
      $(kubectl get job -n NAMESPACE \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  2. Limpia las tareas completadas del espacio de nombres apigee-system:
    kubectl delete job -n apigee-system \
      $(kubectl get job -n apigee-system \
      -o=jsonpath='{.items[?(@.status.succeeded==1)].metadata.name}')
  3. Cambia la variable APIGEECTL_HOME para que apunte al directorio que contiene la versión anterior de apigeectl. Por ejemplo:
    export APIGEECTL_HOME=PATH_TO_PREVIOUS_APIGEECTL_DIRECTORY
  4. En el directorio raíz de la instalación a la que quieras volver, ejecuta apigeectl apply, comprueba el estado de tus pods y, a continuación, ejecuta apigeectl init. Asegúrate de usar el archivo de anulaciones original de la versión a la que quieras volver:
    1. En el directorio hybrid-files, ejecuta apigeectl apply:
      $APIGEECTL_HOME/apigeectl apply -f ORIGINAL_OVERRIDES_FILE

      Donde ORIGINAL_OVERRIDES_FILE es la ruta relativa y el nombre de archivo de las anulaciones del archivo de tu instalación híbrida anterior. Por ejemplo, ./overrides/overrides1.9.yaml.

    2. Verifica el estado de tus pods:
      kubectl -n NAMESPACE get pods

      Donde NAMESPACE es el espacio de nombres de Apigee hybrid.

    3. Comprueba el estado de apigeeds:
      kubectl describe apigeeds -n apigee

      La salida debería tener un aspecto similar a este:

      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

      Continúa con el siguiente paso solo cuando el pod apigeeds esté en ejecución.

    4. Ejecuta el siguiente comando para anotar los nuevos valores del recuento de réplicas del procesador de mensajes después de la actualización. Si estos valores no coinciden con los que ha definido anteriormente, cambie los valores del archivo de anulaciones para que coincidan con la configuración anterior.
      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

      La salida debería tener un aspecto similar a este:

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