Actualizar Apigee Hybrid a la versión 1.11

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

Sigue los mismos procedimientos para actualizar versiones secundarias (por ejemplo, de la versión 1.10 a la 1.11) y para actualizar versiones de parche (por ejemplo, de la 1.11.0 a la 1.11.2).

Si vas a actualizar desde la versión 1.9 o una anterior de Apigee hybrid, primero debes actualizar a la versión 1.10 antes de actualizar a la versión 1.11.2. Consulta las instrucciones para actualizar Apigee Hybrid a la versión 1.10.

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

Comprobaciones de instanciación de clases más estrictas en Hybrid 1.11.2-Hotfix.3

A partir de Apigee hybrid 1.11.2-Hotfix.3, la política JavaCallout incluye seguridad adicional durante la instanciación de clases Java. Esta medida de seguridad mejorada impide que se implementen políticas que intenten realizar acciones directa o indirectamente que requieran permisos no permitidos.

En la mayoría de los casos, las políticas actuales seguirán funcionando como de costumbre sin ningún problema. Sin embargo, es posible que se vean afectadas las políticas que dependen de bibliotecas de terceros o las que tienen código personalizado que activa indirectamente operaciones que requieren permisos elevados.

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.11.2 del entorno de ejecución híbrido.

Requisitos previos

En estas instrucciones de actualización se da por hecho que tienes instalada la versión 1.10.x de Apigee hybrid y que quieres actualizarla a la versión 1.11.2. Si vas a actualizar desde una versión anterior, consulta las instrucciones para actualizar Apigee hybrid a la versión 1.10.

Gráficos de Helm y apigeectl

En la versión 1.11, puedes instalar y gestionar Apigee hybrid con gráficos de Helm o con apigeectl. Apigee recomienda usar Helm para gestionar la instalación.

Migrar a la versión 1.11 con Helm desde la versión 1.10 con apigeectl

Para actualizar a Apigee Hybrid v1.11 gestionado por Helm desde una instalación de Hybrid v1.10 gestionada con apigeectl, sigue estos pasos:

  1. Primero, migra tu instalación de Helm de la versión 1.10 siguiendo las instrucciones de Migrar Apigee hybrid a gráficos de Helm desde apigeectl.
  2. Sigue las instrucciones de los gráficos de Helm que se indican a continuación para actualizar tu instalación.

Prepararse para actualizar a la versión 1.11

Helm

  1. En estas instrucciones se usa la variable de entorno APIGEE_HELM_CHARTS_HOME para el directorio de tu sistema de archivos en el que has instalado los gráficos de Helm. Si es necesario, cambia al directorio y define la variable con el siguiente comando:

    Linux

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    macOS

    export APIGEE_HELM_CHARTS_HOME=$PWD
    echo $APIGEE_HELM_CHARTS_HOME

    Windows

    set APIGEE_HELM_CHARTS_HOME=%CD%
    echo %APIGEE_HELM_CHARTS_HOME%
  2. Crea una copia de seguridad del directorio 1.10 $APIGEE_HELM_CHARTS_HOME/. Puedes usar cualquier proceso de copia de seguridad. Por ejemplo, puedes crear un archivo tar de todo tu directorio con el siguiente comando:
    tar -czvf $APIGEE_HELM_CHARTS_HOME/../apigee-helm-charts-v1.10-backup.tar.gz $APIGEE_HELM_CHARTS_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.
  4. Si utilizas archivos de certificado de servicio (.json) en tus sustituciones para autenticar cuentas de servicio, asegúrate de que los archivos de certificado de tu cuenta de servicio se encuentren en el directorio correcto del gráfico de Helm. Los gráficos de Helm no pueden leer archivos fuera del directorio de cada gráfico.

    No es necesario que sigas este paso si usas secretos de Kubernetes o Workload Identity para autenticar cuentas de servicio.

    En la siguiente tabla se muestra el destino de cada archivo de cuenta de servicio, en función del tipo de instalación:

    Producción

    Cuenta de servicio Nombre de archivo predeterminado Directorio de gráficos de Helm
    apigee-cassandra PROJECT_ID-apigee-cassandra.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    apigee-logger PROJECT_ID-apigee-logger.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-mart PROJECT_ID-apigee-mart.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-metrics PROJECT_ID-apigee-metrics.json $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    apigee-runtime PROJECT_ID-apigee-runtime.json $APIGEE_HELM_CHARTS_HOME/apigee-env
    apigee-synchronizer PROJECT_ID-apigee-synchronizer.json $APIGEE_HELM_CHARTS_HOME/apigee-env/
    apigee-udca PROJECT_ID-apigee-udca.json $APIGEE_HELM_CHARTS_HOME/apigee-org/
    apigee-watcher PROJECT_ID-apigee-watcher.json $APIGEE_HELM_CHARTS_HOME/apigee-org/

    No producción

    Crea una copia del archivo de cuenta de servicio apigee-non-prod en cada uno de los siguientes directorios:

    Cuenta de servicio Nombre de archivo predeterminado Directorios de gráficos de Helm
    apigee-non-prod PROJECT_ID-apigee-non-prod.json $APIGEE_HELM_CHARTS_HOME/apigee-datastore/
    $APIGEE_HELM_CHARTS_HOME/apigee-telemetry/
    $APIGEE_HELM_CHARTS_HOME/apigee-org/
    $APIGEE_HELM_CHARTS_HOME/apigee-env/
  5. Asegúrate de que los archivos de certificado y clave TLS (.crt, .key o .pem) se encuentren en el directorio $APIGEE_HELM_CHARTS_HOME/apigee-virtualhost/.

apigeectl

En los ejemplos de estas instrucciones se usa la siguiente estructura de directorios. Tu instalación puede ser diferente. Adapta las instrucciones a la estructura de tu instalación.

hybrid-v1.11-root-directory/
└── apigeectl/
    └── config/
    └── plugins/
    └── templates/
    └── tools/
└── hybrid-files/
    └── overrides/
    └── service-accounts/
    └── certs/
hybrid-v1.10-root-directory/
  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.10 de $APIGEECTL_HOME/. Por ejemplo:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.10-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 híbridas 1.10 y 1.11. Si necesitas ayuda, consulta la documentación de tu plataforma.

Instalar el entorno de ejecución híbrido 1.11.2

Helm

Prepararse para la actualización de los gráficos de Helm

  1. Haz el siguiente cambio en tu archivo overrides.yaml para que los gráficos apigee-operator y apigee-env usen la etiqueta correcta, 1.11.2-hotfix.3:
    ao:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-operators"
        tag: "1.11.2-hotfix.3"
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.3"
    

    Consulta las notas de la versión 1.11.2-hotfix.3 de Apigee.

  2. Extrae los gráficos de Helm de Apigee.

    Los gráficos de Apigee Hybrid se alojan en Google Artifact Registry:

    oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts

    Con el comando pull, copia todos los gráficos de Helm de Apigee hybrid en tu almacenamiento local con el siguiente comando:

    export CHART_REPO=oci://us-docker.pkg.dev/apigee-release/apigee-hybrid-helm-charts
    export CHART_VERSION=1.11.2
    helm pull $CHART_REPO/apigee-operator --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-datastore --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-env --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-ingress-manager --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-org --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-redis --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-telemetry --version $CHART_VERSION --untar
    helm pull $CHART_REPO/apigee-virtualhost --version $CHART_VERSION --untar
    
  3. Instala cert-manager si es necesario.

    Si necesitas actualizar tu versión de cert-manager, instala la nueva versión con el siguiente comando:

    kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.11.1/cert-manager.yaml
    
  4. Instala los CRDs de Apigee actualizados:
    1. Usa la función de prueba kubectl ejecutando el siguiente comando:

      kubectl apply -k  apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false --dry-run
      
    2. Después de validar con el comando de prueba, ejecuta el siguiente comando:

      kubectl apply -k  apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
      
    3. Valida la instalación con el comando kubectl get crds:
      kubectl get crds | grep apigee

      La salida debería tener un aspecto similar al siguiente:

      apigeedatastores.apigee.cloud.google.com                    2023-10-09T14:48:30Z
      apigeedeployments.apigee.cloud.google.com                   2023-10-09T14:48:30Z
      apigeeenvironments.apigee.cloud.google.com                  2023-10-09T14:48:31Z
      apigeeissues.apigee.cloud.google.com                        2023-10-09T14:48:31Z
      apigeeorganizations.apigee.cloud.google.com                 2023-10-09T14:48:32Z
      apigeeredis.apigee.cloud.google.com                         2023-10-09T14:48:33Z
      apigeerouteconfigs.apigee.cloud.google.com                  2023-10-09T14:48:33Z
      apigeeroutes.apigee.cloud.google.com                        2023-10-09T14:48:33Z
      apigeetelemetries.apigee.cloud.google.com                   2023-10-09T14:48:34Z
      cassandradatareplications.apigee.cloud.google.com           2023-10-09T14:48:35Z
      
  5. Comprueba las etiquetas de los nodos del clúster. De forma predeterminada, Apigee programa los pods de datos en nodos con la etiqueta cloud.google.com/gke-nodepool=apigee-data y los pods de tiempo de ejecución en nodos con la etiqueta cloud.google.com/gke-nodepool=apigee-runtime. Puedes personalizar las etiquetas de tu grupo de nodos en el archivo overrides.yaml.

    Para obtener más información, consulta el artículo sobre cómo configurar grupos de nodos dedicados.

Instalar los gráficos de Helm de Apigee Hybrid

  1. Si no lo has hecho, ve al directorio APIGEE_HELM_CHARTS_HOME. Ejecuta los siguientes comandos desde ese directorio.
  2. Actualiza el operador o el controlador de Apigee:

    Prueba de funcionamiento:

    helm upgrade operator apigee-operator/ \
      --install \
      --create-namespace \
      --namespace apigee-system \
      -f OVERRIDES_FILE \
      --dry-run
    

    Actualiza el gráfico:

    helm upgrade operator apigee-operator/ \
      --install \
      --create-namespace \
      --namespace apigee-system \
      -f OVERRIDES_FILE
    

    Verifica la instalación del operador de Apigee:

    helm ls -n apigee-system
    
    NAME           NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
    operator    apigee-system   3               2023-06-26 00:42:44.492009 -0800 PST    deployed        apigee-operator-1.11.2   1.11.2

    Para comprobar que funciona correctamente, consulta su disponibilidad:

    kubectl -n apigee-system get deploy apigee-controller-manager
    
    NAME                        READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-controller-manager   1/1     1            1           7d20h
  3. Actualiza el almacén de datos de Apigee:

    Prueba de funcionamiento:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Actualiza el gráfico:

    helm upgrade datastore apigee-datastore/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Verifica que apigeedatastore esté en funcionamiento comprobando su estado:

    kubectl -n apigee get apigeedatastore default
    
    NAME      STATE       AGE
    default   running    2d
  4. Actualiza la telemetría de Apigee:

    Prueba de funcionamiento:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Actualiza el gráfico:

    helm upgrade telemetry apigee-telemetry/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Para comprobar que funciona correctamente, consulta su estado:

    kubectl -n apigee get apigeetelemetry apigee-telemetry
    
    NAME               STATE     AGE
    apigee-telemetry   running   2d
  5. Actualiza Apigee Redis:

    Prueba de funcionamiento:

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Actualiza el gráfico:

    helm upgrade redis apigee-redis/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Para comprobar que funciona correctamente, consulta su estado:

    kubectl -n apigee get apigeeredis default
    
    NAME      STATE     AGE
    default   running   2d
  6. Actualiza el gestor de entrada de Apigee:

    Prueba de funcionamiento:

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Actualiza el gráfico:

    helm upgrade ingress-manager apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Para comprobar que funciona correctamente, consulta su disponibilidad:

    kubectl -n apigee get deployment apigee-ingressgateway-manager
    
    NAME                            READY   UP-TO-DATE   AVAILABLE   AGE
    apigee-ingressgateway-manager   2/2     2            2           2d
  7. Actualiza la organización de Apigee:

    Prueba de funcionamiento:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE \
      --dry-run
    

    Actualiza el gráfico:

    helm upgrade ORG_NAME apigee-org/ \
      --install \
      --namespace apigee \
      -f OVERRIDES_FILE
    

    Comprueba que está en funcionamiento consultando el estado de la organización correspondiente:

    kubectl -n apigee get apigeeorg
    
    NAME                      STATE     AGE
    apigee-org1-xxxxx          running   2d
  8. Actualiza el entorno.

    Debes instalar un entorno cada vez. Especifica el entorno con --set env=ENV_NAME:

    Prueba de funcionamiento:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE \
      --dry-run
    
    • ENV_RELEASE_NAME es el nombre con el que instalaste el gráfico apigee-env. En la versión híbrida 1.10, suele ser apigee-env-ENV_NAME. En Hybrid 1.11 y versiones posteriores, suele ser ENV_NAME.
    • ENV_NAME es el nombre del entorno que vas a actualizar.
    • OVERRIDES_FILE es tu nuevo archivo de anulaciones para la versión 1.11.2.

    Actualiza el gráfico:

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --install \
      --namespace apigee \
      --set env=ENV_NAME \
      -f OVERRIDES_FILE
    

    Para comprobar que está en funcionamiento, consulta el estado del entorno correspondiente:

    kubectl -n apigee get apigeeenv
    
    NAME                          STATE       AGE   GATEWAYTYPE
    apigee-org1-dev-xxx            running     2d
  9. Actualiza los grupos de entornos (virtualhosts).
    1. Debes actualizar los grupos de entornos (hosts virtuales) de uno en uno. Especifica el grupo de entornos con --set envgroup=ENV_GROUP_NAME. Repite los siguientes comandos para cada grupo de entorno mencionado en el archivo overrides.yaml:

      Prueba de funcionamiento:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE \
        --dry-run
      

      ENV_GROUP_RELEASE_NAME es el nombre con el que instalaste el gráfico apigee-virtualhost. En la versión híbrida 1.10, suele ser apigee-virtualhost-ENV_GROUP_NAME. En Hybrid v1.11 y versiones posteriores, suele ser ENV_GROUP_NAME.

      Actualiza el gráfico:

      helm upgrade ENV_GROUP_RELEASE_NAME apigee-virtualhost/ \
        --install \
        --namespace apigee \
        --set envgroup=ENV_GROUP_NAME \
        -f OVERRIDES_FILE
      
    2. Comprueba el estado de ApigeeRoute (AR).

      Al instalar virtualhosts se crea ApigeeRouteConfig (ARC), que a su vez crea ApigeeRoute (AR) una vez que el watcher de Apigee extrae los detalles relacionados con el grupo de entornos del plano de control. Por lo tanto, comprueba que el estado de la AR correspondiente sea "running":

      kubectl -n apigee get arc
      
      NAME                                STATE   AGE
      apigee-org1-dev-egroup                       2d
      kubectl -n apigee get ar
      
      NAME                                        STATE     AGE
      apigee-org1-dev-egroup-xxxxxx                running   2d

Instalar 1.11.2-hotfix.3

  1. Haz el siguiente cambio en tu archivo overrides.yaml para que runtime pueda usar la etiqueta correcta, 1.11.2-hotfix.3:
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.3"
    

    Consulta las notas de la versión 1.11.2-hotfix.3 de Apigee.

  2. Actualiza el gráfico apigee-env con el comando helm upgrade y tu archivo de anulaciones actual.

    Repite este proceso en todos los entornos.

    helm upgrade ENV_RELEASE_NAME apigee-env/ \
      --namespace APIGEE_NAMESPACE \
      --set env ENV_NAME \
      --atomic \
      -f OVERRIDES_FILE 

apigeectl

  1. Almacena el número de la versión más reciente en una variable con el siguiente comando:

    Linux

    export VERSION=$(curl -s \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt?ignoreCache=1)

    macOS

    export VERSION=$(curl -s \
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt)

    Windows

    for /f "tokens=*" %a in ('curl -s ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/current-version.txt') ^
    do set VERSION=%a
  2. Comprueba que la variable se haya rellenado con un número de versión mediante el siguiente comando. Si quieres usar otra versión, puedes guardarla en una variable de entorno.
    echo $VERSION

    Debería ver la versión más reciente de Apigee Hybrid:

      1.11.2
  3. 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/..
  4. 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/$VERSION/apigeectl_linux_64.tar.gz

    macOS

    Mac de 64 bits:

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

    Windows

    Windows (64 bits):

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/%VERSION%/apigeectl_windows_64.zip
  5. 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.10/

    macOS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.10/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.10 
  6. 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.10 renombrado:

    Linux

    tar xvzf filename.tar.gz -C ./

    macOS

    tar xvzf filename.tar.gz -C ./

    Windows

    tar xvzf filename.zip -C ./
  7. 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.11.2-xxxxxxx_linux_64. Cambia el nombre de ese directorio a apigeectl con el siguiente comando:

    Linux

    mv apigeectl_1.11.2-xxxxxxx_linux_64 apigeectl

    macOS

    mv apigeectl_1.11.2-xxxxxxx_mac_64 apigeectl

    Windows

    rename apigeectl_1.11.2-xxxxxxx_windows_64 apigeectl
  8. Cambia al directorio apigeectl:
    cd ./apigeectl

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

  9. 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%
  10. Verifica la versión de apigeectl con el comando version:
    ./apigeectl version
    Version: 1.11.2
  11. 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
  12. 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 \*
  13. 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
  14. 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.

  15. Si no hay errores, inicializa la versión híbrida 1.11.2:
    $APIGEECTL_HOME/apigeectl init -f OVERRIDES_FILE
  16. 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.

  17. 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
  18. 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

Instalar 1.11.2-hotfix.3

  1. Haz el siguiente cambio en tu archivo overrides.yaml para que runtime pueda usar la etiqueta correcta, 1.11.2-hotfix.3:
    runtime:
      image:
        url: "gcr.io/apigee-release/hybrid/apigee-runtime"
        tag: "1.11.2-hotfix.3"
    

    Consulta las notas de la versión 1.11.2-hotfix.3 de Apigee.

  2. Instala el paquete de revisiones con apigeectl init usando el archivo de anulaciones actualizado.

    Prueba de funcionamiento:

    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE --dry-run=client
    

    Inicializar:

    ${APIGEECTL_HOME}/apigeectl init -f OVERRIDES_FILE
    
  3. Aplica el paquete de revisiones con apigeectl apply.

    Prueba de funcionamiento:

    ${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs --dry-run=client
    

    Aplicar:

    ${APIGEECTL_HOME}/apigeectl apply -f OVERRIDES_FILE --all-envs
    

Sigue este procedimiento para validar el comportamiento de la política JavaCallout después de actualizar a Hybrid 1.11.2-hotfix.3.

  1. Comprueba si los archivos JAR de Java solicitan permisos innecesarios.

    Una vez que se haya implementado la política, comprueba los registros de tiempo de ejecución para ver si aparece el siguiente mensaje de registro: "Failed to load and initialize class ...". Si ves este mensaje, significa que el archivo JAR implementado ha solicitado permisos innecesarios. Para solucionar este problema, investiga el código Java y actualiza el archivo JAR.

  2. Investiga y actualiza el código Java.

    Revisa el código Java (incluidas las dependencias) para identificar la causa de las operaciones que pueden no estar permitidas. Cuando lo encuentre, modifique el código fuente según sea necesario.

  3. Prueba las políticas con la comprobación de seguridad habilitada.

    En un entorno de no producción, habilita la marca de verificación de seguridad y vuelve a implementar tus políticas con un archivo JAR actualizado. Para definir la marca, sigue estos pasos:

    • En el archivo apigee-env/values.yaml, asigna el valor true a conf_security-secure.constructor.only en runtime:cwcAppend:. Por ejemplo:
      # Apigee Runtime
      runtime:
        cwcAppend:
          conf_security-secure.constructor.only: true
    • Actualiza el gráfico apigee-env del entorno para aplicar el cambio. Por ejemplo:
      helm upgrade ENV_RELEASE_NAME apigee-env/ \
        --install \
        --namespace APIGEE_NAMESPACE \
        --set env=ENV_NAME \
        -f OVERRIDES_FILE

        ENV_RELEASE_NAME es un nombre que se usa para hacer un seguimiento de la instalación y las actualizaciones del gráfico apigee-env. Este nombre debe ser único y diferente de los demás nombres de lanzamientos de Helm de tu instalación. Normalmente, es la misma que ENV_NAME. Sin embargo, si tu entorno tiene el mismo nombre que tu grupo de entornos, debes usar nombres de lanzamiento diferentes para el entorno y el grupo de entornos, como dev-env-release y dev-envgroup-release. Para obtener más información sobre las versiones de Helm, consulta el artículo Tres conceptos importantes (clase"external") de la documentación de Helm.

    Si el mensaje de registro "Failed to load and initialize class ..." sigue presente, sigue modificando y probando el archivo JAR hasta que deje de aparecer.

  4. Habilita la comprobación de seguridad en el entorno de producción.

    Después de haber probado y verificado exhaustivamente el archivo JAR en el entorno de no producción, habilite la comprobación de seguridad en su entorno de producción configurando la marca conf_security-secure.constructor.only en true y actualizando el gráfico apigee-env del entorno de producción para aplicar el cambio.

Restaurar una versión anterior de una actualización

Sigue estos pasos para revertir una actualización anterior:

Helm

Para volver a la versión anterior, usa los gráficos y el archivo de anulaciones de la instalación anterior.

  1. Crea la siguiente variable de entorno:
    • PREVIOUS_HELM_CHARTS_HOME: directorio en el que se instalan los gráficos de Helm de Apigee hybrid anteriores. Esta es la versión a la que vas a volver.
  2. Restablece los virtualhosts. Repite el siguiente comando para cada grupo de entornos mencionado en el archivo de anulaciones.
    helm upgrade ENV_GROUP_RELEASE_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-virtualhost/ \
      --namespace apigee \
      --atomic \
      --set envgroup=ENV_GROUP_NAME \
      -f PREVIOUS_OVERRIDES_FILE
    

    ENV_GROUP_RELEASE_NAME es el nombre con el que instalaste el gráfico apigee-virtualhost. En la versión híbrida 1.10, suele ser apigee-virtualhost-ENV_GROUP_NAME. En Hybrid v1.11 y versiones posteriores, suele ser ENV_GROUP_NAME.

  3. Restaurar entornos. Repite el siguiente comando para cada entorno mencionado en el archivo de anulaciones.
    helm upgrade apigee-env-ENV_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-env/ \
      --install \
      --namespace apigee \
      --atomic \
      --set env=ENV_NAME \
      -f PREVIOUS_OVERRIDES_FILE
    

    ENV_RELEASE_NAME es el nombre con el que instalaste el gráfico apigee-env. En la versión híbrida 1.10, suele ser apigee-env-ENV_NAME. En Hybrid v1.11 y versiones posteriores, suele ser ENV_NAME.

  4. Restaurar organización:
    helm upgrade ORG_NAME $PREVIOUS_HELM_CHARTS_HOME/apigee-org/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  5. Retira Ingress Manager:
    helm upgrade ingress-manager $PREVIOUS_HELM_CHARTS_HOME/apigee-ingress-manager/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  6. Retira Redis:
    helm upgrade redis $PREVIOUS_HELM_CHARTS_HOME/apigee-redis/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  7. Restaurar la telemetría de Apigee:
    helm upgrade telemetry $PREVIOUS_HELM_CHARTS_HOME/apigee-telemetry/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  8. Revertir Apigee Datastore (el componente de base de datos Cassandra):
    helm upgrade datastore $PREVIOUS_HELM_CHARTS_HOME/apigee-datastore/ \
      --install \
      --namespace apigee \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  9. Retira el controlador de Apigee:
    helm upgrade operator $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/ \
      --install \
      --namespace apigee-system \
      --atomic \
      -f PREVIOUS_OVERRIDES_FILE
    
  10. Revertir los CRDs de Apigee Hybrid:
      kubectl apply -k  $PREVIOUS_HELM_CHARTS_HOME/apigee-operator/etc/crds/default/ --server-side --force-conflicts --validate=false
    

apigeectl

  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. Ejecuta los siguientes comandos en el directorio raíz de la instalación a la que quieras volver. 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.10.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