Actualizar Apigee Hybrid a la versión 1.6

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

Descripción general de la actualización a la versión 1.6.9.

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

  1. Crea una copia de seguridad de tu instalación híbrida.
  2. Comprueba tu versión de Kubernetes y actualízala si es necesario.
  3. Instala la versión 1.6.9 del entorno de ejecución híbrido.
  4. Actualiza ASM.

Requisitos previos

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

Actualizar a la versión 1.6

  1. 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, ve al directorio cd y define la variable con el siguiente comando:
    apigeectl

    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. (Recomendado) Haz una copia de seguridad del directorio $APIGEECTL_HOME/ de la versión 1.5. Por ejemplo:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.5-backup.tar.gz $APIGEECTL_HOME
  3. (Recomendado) 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. Actualiza tu plataforma Kubernetes a las versiones compatibles con Hybrid 1.6. Si necesitas ayuda, consulta la documentación de tu plataforma.
  5. Si utilizas una versión de cert-manager anterior a la 1.5.4, debes actualizarla a la 1.5.4.
    1. Consulta la versión actual de cert-manager con el siguiente comando:

      kubectl -n cert-manager get deployment -o yaml | grep 'image:'
      

      Se devuelve algo similar a lo siguiente:

      image: quay.io/jetstack/cert-manager-controller:v1.5.4
      image: quay.io/jetstack/cert-manager-cainjector:v1.5.4
      image: quay.io/jetstack/cert-manager-webhook:v1.5.4
    2. Elimina las implementaciones con el siguiente comando:
      $ kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
      
    3. Actualiza cert-manager a la versión 1.5.4 con el siguiente comando:
      $ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.4/cert-manager.yaml
      
  6. Crea la apigee-runtimecuenta de servicio necesaria para usar tokens de Google OAuth. Usa la herramienta create-service-account:
    1. Crea la cuenta de servicio:
      ./tools/create-service-account --env prod --profile apigee-runtime
    2. Añade la nueva cuenta de servicio al archivo overrides.yaml de Apigee:
      envs:
       - name: "environment-name"
         … … …
         serviceAccountPaths:
           runtime: "path-to-service-account-file"
         … … …
  7. Añade la propiedad udca.serviceAccountPath al nivel superior del archivo de anulaciones, además de la entrada de envs. udca debe aparecer dos veces en las anulaciones, una a nivel de entorno y otra a nivel de organización, en paralelo con connectAgent, logger, mart, metrics y watcher.

    Por ejemplo:

    … … …
    
    metrics:
      serviceAccountPath: "metrics-service-account-file"
    
    udca:
      serviceAccountPath: "udca-service-account-file"
    
    watcher:
      serviceAccountPath: "watcher-service-account-file"
    … … …
  8. Opcional: Si tienes previsto usar Cloud Trace, asegúrate de que tu cuenta de servicio apigee-runtime tenga el rol de Google Agente de Cloud Trace (roles/cloudtrace.agent). Puedes hacerlo en la interfaz de usuario de consola de Cloud > Gestión de identidades y accesos > Cuentas de servicio o con los siguientes comandos:
    1. Obtén la dirección de correo de tu cuenta de servicio apigee-runtime con el siguiente comando:
      gcloud iam service-accounts list --filter "apigee-runtime"

      Si coincide con el patrón apigee-runtime@$ORG_NAME.iam.gserviceaccount.com, puedes usarlo en el siguiente paso.

    2. Asigna el rol Agente de Cloud Trace a la cuenta de servicio:
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member="serviceAccount:apigee-runtime@$PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/cloudtrace.agent"

      Donde $PROJECT_ID es el nombre del proyecto de Google Cloud en el que está instalado Apigee hybrid.

Instalar el entorno de ejecución híbrido 1.6.9

  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.6.9/apigeectl_linux_64.tar.gz

    macOS

    Mac de 64 bits:

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

    Windows

    Windows (64 bits):

    curl -LO ^
      https://storage.googleapis.com/apigee-release/hybrid/apigee-hybrid-setup/1.6.9/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.5/

    macOS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.5/ 

    Windows

    rename %APIGEECTL_HOME% %APIGEECTL_HOME%-v1.5 
  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.5 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.6.9-d591b23_linux_64. Cambia el nombre de ese directorio a apigeectl con el siguiente comando:

    Linux

    mv directory-name-linux apigeectl

    macOS

    mv directory-name-mac apigeectl

    Windows

    rename directory-name-windows apigeectl
  6. Cambia al directorio apigeectl:
    cd ./apigeectl

    El archivo ejecutable apigeectl se encuentra en este directorio.

  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, ve al directorio cd y define la variable con el siguiente comando:
    apigeectl

    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.6.9
  9. Ve al directorio hybrid-base-directory/hybrid-files. 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:
    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
    3. Haz una inicialización de prueba para comprobar si hay errores:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/OVERRIDES.yaml --dry-run=client

      Donde OVERRIDES es el nombre del archivo de anulaciones.

    4. Si no hay errores, inicializa la versión 1.6.9 de Hybrid:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/OVERRIDES.yaml
    5. Comprueba el estado de inicialización:
      ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
    6. Comprueba si hay errores con una prueba de funcionamiento del comando apply:
      ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --dry-run=client
    7. Si no hay errores, aplica las anulaciones. Selecciona las instrucciones para entornos de producción o de demostración/experimentales, según tu instalación, y síguelas.

      Producción

      En los entornos de producción, debes actualizar cada componente híbrido por separado y comprobar 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/OVERRIDES.yaml --datastore
      3. Comprobación completada:
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

        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/OVERRIDES.yaml --telemetry
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
      5. Inicia los componentes de Redis:
        ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --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/OVERRIDES.yaml --org
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
      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/OVERRIDES.yaml --env ENV_NAME
          ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

          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/OVERRIDES.yaml --all-envs
          ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

      Demo o experimental

      En la mayoría de los entornos de demostración o experimentales, puedes aplicar las anulaciones a todos los componentes a la vez. Si tu entorno de demostración o experimental es grande y complejo, o bien 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/OVERRIDES.yaml
      3. Comprueba el estado:
        ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

Actualizar ASM a la versión 1.26

Realiza la actualización siguiendo la documentación de ASM adecuada para tu plataforma:

Las instrucciones para instalar y configurar ASM varían en función de la plataforma. Las plataformas se dividen en las siguientes categorías:

  • GKE: clústeres de Google Kubernetes Engine que se ejecutan en Google Cloud.
  • Fuera de Google Cloud: clústeres de Anthos que se ejecutan en:
    • Clústeres de Anthos en VMware (GKE On-Prem)
    • Anthos en Bare Metal
    • Clústeres de Anthos en AWS
    • Amazon EKS
  • Otras plataformas de Kubernetes: clústeres conformes creados y ejecutados en:
    • AKS
    • EKS
    • OpenShift

GKE

La secuencia para actualizar a la versión 1.26.4 de ASM en tu instalación híbrida es la siguiente:

  1. Prepárate para la actualización.
  2. Instala la nueva versión de ASM.
  3. Elimina las implementaciones, los servicios y los webhooks de la versión anterior de ASM de tu instalación actual.
  4. Actualiza tus pasarelas y configura los nuevos webhooks.

Para actualizar a la versión de ASM 1.26.4 para la configuración híbrida en GKE, sigue estos pasos:

.
  1. Consulta los requisitos en Actualizar Anthos Service Mesh, pero no realices la actualización todavía.
  2. Antes de instalar la nueva versión, determina la revisión actual. Necesitarás esta información para eliminar las implementaciones, los servicios y los webhooks de la versión anterior de ASM de tu instalación actual. Usa el siguiente comando para almacenar la revisión actual de istiod en una variable de entorno:
    export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}')
    echo ${DELETE_REV}
  3. Crea un archivo overlay.yaml o comprueba que el que ya tienes contiene lo siguiente:overlay.yaml
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      revision: asm-1264-1
      components:
        ingressGateways:
          - name: istio-ingressgateway
            enabled: true
            k8s:
              nodeSelector:
                # default node selector, if different or not using node selectors, change accordingly.
                cloud.google.com/gke-nodepool: apigee-runtime
              resources:
                requests:
                  cpu: 1000m
              service:
                type: LoadBalancer
                loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out.
                ports:
                  - name: http-status-port
                    port: 15021
                  - name: http2
                    port: 80
                    targetPort: 8080
                  - name: https
                    port: 443
                    targetPort: 8443
      meshConfig:
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
  4. Sigue las instrucciones de las siguientes secciones de la documentación de ASM:
    1. Descargar asmcli
    2. Conceder permisos de administrador de clústeres
    3. Validar proyecto y clúster
    4. Actualiza tu plan con funciones opcionales. Detenerse antes de empezar la sección "Actualizar las pasarelas"
  5. Elimina el webhook de mutación y el webhook de validación:
    1. cd en el directorio donde hayas instalado asmcli.
    2. Almacena la nueva revisión actual en una variable de entorno para usarla en la secuencia de comandos para eliminar los webhooks:
      UPGRADE_REV="asm-1264-1"
    3. Crea un shell script que contenga los siguientes comandos:
      #!/bin/bash
      
      set -ex
      
      PROJECT_ID="YOUR_PROJECT_ID"
      CLUSTER_NAME="YOUR_CLUSTER_NAME"
      CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION"
      
      kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite
      kubectl rollout restart deployment -n istio-system
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAY/istio-ingressgateway-connectors
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f out/asm/istio/istiod-service.yaml
        kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true
      fi
      
    4. Ejecuta la secuencia de comandos para eliminar los webhooks actuales.
  6. Sigue los pasos que se indican en Actualizar pasarelas para crear los nuevos webhooks y cambiar el tráfico a las nuevas pasarelas.

Fuera de Google Cloud

Estas instrucciones explican cómo actualizar ASM en los siguientes sistemas:

  • Clústeres de Anthos en VMware (GKE On-Prem)
  • Anthos en Bare Metal
  • Clústeres de Anthos en AWS
  • Amazon EKS
.

La secuencia para actualizar a la versión 1.26.4 de ASM en tu instalación híbrida es la siguiente:

  1. Prepárate para la actualización.
  2. Instala la nueva versión de ASM.
  3. Elimina el webhook de mutación y el webhook de validación de tu instalación actual.
  4. Actualiza tus pasarelas y configura los nuevos webhooks.
  1. Consulta los requisitos en Actualizar Anthos Service Mesh, pero no realices la actualización todavía.
  2. Antes de instalar la nueva versión, determina la revisión actual. Necesitarás esta información para eliminar el webhook de validación y el webhook de mutación de tu instalación actual de ASM. Usa el siguiente comando para almacenar la revisión de istiod actual en una variable de entorno:
    export DELETE_REV=$(kubectl get deploy -n istio-system -l app=istiod -o jsonpath={.items[].metadata.labels.'istio\.io\/rev'}'{"\n"}')
    echo ${DELETE_REV}
  3. Crea un archivo overlay.yaml o comprueba que el que ya tienes contiene lo siguiente:overlay.yaml
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      revision: asm-1264-1
      components:
        ingressGateways:
          - name: istio-ingressgateway
            enabled: true
            k8s:
              nodeSelector:
                # default node selector, if different or not using node selectors, change accordingly.
                cloud.google.com/gke-nodepool: apigee-runtime
              resources:
                requests:
                  cpu: 1000m
              service:
                type: LoadBalancer
                loadBalancerIP: STATIC_IP # If you do not have a reserved static IP, leave this out.
                ports:
                  - name: http-status-port
                    port: 15021
                  - name: http2
                    port: 80
                    targetPort: 8080
                  - name: https
                    port: 443
                    targetPort: 8443
      values:
        gateways:
          istio-ingressgateway:
            runAsRoot: true
    
      meshConfig:
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
  4. Sigue las instrucciones de las siguientes secciones de la documentación de ASM:
    1. Descargar asmcli
    2. Conceder permisos de administrador de clústeres
    3. Validar proyecto y clúster
    4. Actualiza tu plan con funciones opcionales. Detenerse antes de empezar la sección "Actualizar las pasarelas"
  5. Elimina el webhook de mutación y el webhook de validación:
    1. cd en el directorio donde hayas instalado asmcli.
    2. Almacena la nueva revisión actual en una variable de entorno para usarla en la secuencia de comandos para eliminar los webhooks:
      UPGRADE_REV="asm-1264-1"
    3. Crea un shell script que contenga los siguientes comandos:
      #!/bin/bash
      
      set -ex
      
      PROJECT_ID="YOUR_PROJECT_ID"
      CLUSTER_NAME="YOUR_CLUSTER_NAME"
      CLUSTER_LOCATION="YOUR_CLUSTER_LOCATION"
      
      
      gcloud config configurations activate ${PROJECT_ID}
      gcloud container clusters get-credentials ${CLUSTER_NAME} --region ${CLUSTER_LOCATION} --project ${PROJECT_ID}
      
      
      kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite
      kubectl rollout restart deployment -n istio-system
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAY/istio-ingressgateway-connectors
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f out/asm/istio/istiod-service.yaml
        kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true
      fi
      
    4. Ejecuta la secuencia de comandos para eliminar los webhooks actuales.
  6. Sigue los pasos que se indican en Actualizar pasarelas para crear los nuevos webhooks y cambiar el tráfico a las nuevas pasarelas.

AKS/EKS

En estas instrucciones, el proceso de actualización de la versión istio-1.26.4-asm.1 de Anthos Service Mesh (ASM) en clústeres vinculados de Anthos es el mismo que el de una instalación nueva.

Prepararse para instalar Anthos Service Mesh

  1. Elimina el webhook de mutación y el webhook de validación:
    1. cd en el directorio donde hayas instalado asmcli.
    2. Almacena la nueva revisión actual en una variable de entorno para usarla en la secuencia de comandos para eliminar los webhooks:
      UPGRADE_REV="asm-1264-1"
    3. Crea un shell script que contenga los siguientes comandos:
      #!/bin/bash
      
      set -ex
      
      kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite
      kubectl rollout restart deployment -n istio-system
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f out/asm/istio/istiod-service.yaml
        kubectl apply -f ASMCLI_OUTPUT_DIR/asm/istio/istiod-service.yaml ASMCLI_OUTPUT_DIR/istioctl tag set default --revision ${UPGRADE_REV}
      
      
        kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true
      fi
      
    4. Ejecuta la secuencia de comandos para eliminar los webhooks actuales.
  2. Linux

  3. Descarga el archivo de instalación de Anthos Service Mesh en tu directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-linux-amd64.tar.gz
  4. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  5. Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
    tar xzf istio-1.26.4-asm.1-linux-amd64.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.26.4-asm.1 que contiene lo siguiente:

    • Aplicaciones de ejemplo en el directorio samples.
    • La herramienta de línea de comandos istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  6. Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  7. Para mayor comodidad, añade las herramientas del directorio /bin a tu PATH:
    export PATH=$PWD/bin:$PATH
  8. macOS

  9. Descarga el archivo de instalación de Anthos Service Mesh en tu directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-osx.tar.gz
  10. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.4-asm.1-osx.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  11. Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
    tar xzf istio-1.26.4-asm.1-osx.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.26.4-asm.1 que contiene lo siguiente:

    • Aplicaciones de ejemplo en el directorio samples.
    • La herramienta de línea de comandos istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  12. Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  13. Para mayor comodidad, añade las herramientas del directorio /bin a tu PATH:
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. Descarga el archivo de instalación de Anthos Service Mesh en tu directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-win.zip
  16. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.4-asm.1-win.zip.1.sig istio-1.26.4-asm.1.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  17. Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
    tar xzf istio-1.26.4-asm.1-win.zip

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.26.4-asm.1 que contiene lo siguiente:

    • Aplicaciones de ejemplo en el directorio samples.
    • La herramienta de línea de comandos istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests\profiles.
  18. Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  19. Para mayor comodidad, añade las herramientas del directorio \bin a tu PATH:
    set PATH=%CD%\bin:%PATH%
  20. Ahora que ASM Istio está instalado, comprueba la versión de istioctl:
    istioctl version
  21. Crea un espacio de nombres llamado istio-system para los componentes del plano de control:
    kubectl create namespace istio-system

Instalar Anthos Service Mesh

  1. Edita el archivo overlay.yaml o crea uno con el siguiente contenido:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        accessLogFile: /dev/stdout
        enableTracing: true
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
      components:
      - enabled: true
        name: istio-ingressgateway
        k8s:
          service:
            type: LoadBalancer
            ports:
            - name: status-port
              port: 15021
              targetPort: 15021
            - name: http2
              port: 80
              targetPort: 8080
            - name: https
              port: 443
              targetPort: 8443
    
  2. Instala Anthos Service Mesh con istioctl mediante el perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1264-1" \
        --filename overlayfile.yaml

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

    kubectl get pods -n istio-system
    NAME                                   READY   STATUS    RESTARTS   AGE
    istio-ingressgateway-88b6fd976-flgp2   1/1     Running   0          3m13s
    istio-ingressgateway-88b6fd976-p5dl9   1/1     Running   0          2m57s
    istiod-asm-1264-1-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1264-1-798ffb964-fnj8c       1/1     Running   1          3m21s

    El argumento --set revision añade una etiqueta de revisión con el formato istio.io/rev=asm-1264-1 a istiod. El webhook del inyector automático de sidecars usa la etiqueta de revisión para asociar los sidecars inyectados con una revisión de istiod concreta. Para habilitar la inyección automática de sidecar en un espacio de nombres, debe etiquetarlo con una revisión que coincida con la etiqueta de istiod.

  3. Comprueba que la instalación se ha completado:
    kubectl get svc -n istio-system

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

    NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                                                      AGE
    istio-ingressgateway   LoadBalancer   172.200.48.52    34.74.177.168   15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP   3m35s
    istiod                 ClusterIP      172.200.18.133   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        4m46s
    istiod-asm-1264-1       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

OpenShift

En estas instrucciones, el proceso de actualización de la versión istio-1.26.4-asm.1 de Anthos Service Mesh (ASM) en clústeres vinculados de Anthos es el mismo que el de una instalación nueva.

Prepararse para instalar Anthos Service Mesh

  1. Elimina el webhook de mutación y el webhook de validación:
    1. cd en el directorio donde hayas instalado asmcli.
    2. Almacena la nueva revisión actual en una variable de entorno para usarla en la secuencia de comandos para eliminar los webhooks:
      UPGRADE_REV="asm-1264-1"
    3. Crea un shell script que contenga los siguientes comandos:
      #!/bin/bash
      
      set -ex
      
      kubectl label namespace istio-system istio.io/rev=${UPGRADE_REV} istio-injection- --overwrite
      kubectl rollout restart deployment -n istio-system
      kubectl apply -n istio-system -f PATH_TO_INGRESSGATEWAYistio-ingressgateway
      
      if [[ "${DELETE_REV}" != "${UPGRADE_REV}" ]]; then
        kubectl apply -f out/asm/istio/istiod-service.yaml
        kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete deploy -l app=istio-ingressgateway-connectors,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete ValidatingWebhookConfiguration -l app=istiod,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete MutatingWebhookConfiguration -l app=sidecar-injector,istio.io/rev=${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-${DELETE_REV} -n istio-system --ignore-not-found=true
        kubectl delete IstioOperator installed-state-${DELETE_REV} -n istio-system --ignore-not-found=true
      fi
      
    4. Ejecuta la secuencia de comandos para eliminar los webhooks actuales.
  2. Linux

  3. Asigna la restricción de contexto de seguridad (SCC) anyuid a istio-system con el siguiente comando de la CLI de OpenShift (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  4. Descarga el archivo de instalación de Anthos Service Mesh en tu directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-linux-amd64.tar.gz
  5. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.26.4-asm.1-linux-amd64.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  6. Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
    tar xzf istio-1.26.4-asm.1-linux-amd64.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.26.4-asm.1 que contiene lo siguiente:

    • Aplicaciones de ejemplo en el directorio samples.
    • La herramienta de línea de comandos istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  7. Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  8. Para mayor comodidad, añade las herramientas del directorio /bin a tu PATH:
    export PATH=$PWD/bin:$PATH
  9. macOS

  10. Asigna la restricción de contexto de seguridad (SCC) anyuid a istio-system con el siguiente comando de la CLI de OpenShift (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  11. Descarga el archivo de instalación de Anthos Service Mesh en tu directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-osx.tar.gz
  12. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.26.4-asm.1-osx.tar.gz.1.sig istio-1.26.4-asm.1.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  13. Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
    tar xzf istio-1.26.4-asm.1-osx.tar.gz

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.26.4-asm.1 que contiene lo siguiente:

    • Aplicaciones de ejemplo en el directorio samples.
    • La herramienta de línea de comandos istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests/profiles.
  14. Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  15. Para mayor comodidad, añade las herramientas del directorio /bin a tu PATH:
    export PATH=$PWD/bin:$PATH
  16. Windows

  17. Asigna la restricción de contexto de seguridad (SCC) anyuid a istio-system con el siguiente comando de la CLI de OpenShift (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  18. Descarga el archivo de instalación de Anthos Service Mesh en tu directorio de trabajo actual:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-win.zip
  19. Descarga el archivo de firma y usa openssl para verificar la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.26.4-asm.1-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.26.4-asm.1-win.zip.1.sig istio-1.26.4-asm.1.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  20. Extrae el contenido del archivo a cualquier ubicación de tu sistema de archivos. Por ejemplo, para extraer el contenido al directorio de trabajo actual, haz lo siguiente:
    tar xzf istio-1.26.4-asm.1-win.zip

    El comando crea un directorio de instalación en tu directorio de trabajo actual llamado istio-1.26.4-asm.1 que contiene lo siguiente:

    • Aplicaciones de ejemplo en el directorio samples.
    • La herramienta de línea de comandos istioctl que usas para instalar Anthos Service Mesh se encuentra en el directorio bin.
    • Los perfiles de configuración de Anthos Service Mesh se encuentran en el directorio manifests\profiles.
  21. Asegúrate de que te encuentras en el directorio raíz de la instalación de Anthos Service Mesh:
    cd istio-1.26.4-asm.1
  22. Para mayor comodidad, añade las herramientas del directorio \bin a tu PATH:
    set PATH=%CD%\bin:%PATH%
  23. Ahora que ASM Istio está instalado, comprueba la versión de istioctl:
    istioctl version
  24. Crea un espacio de nombres llamado istio-system para los componentes del plano de control:
    kubectl create namespace istio-system

Instalar Anthos Service Mesh

  1. Edita el archivo overlay.yaml o crea uno con el siguiente contenido:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      meshConfig:
        accessLogFile: /dev/stdout
        enableTracing: true
        accessLogFormat:
          '{"start_time":"%START_TIME%","remote_address":"%DOWNSTREAM_DIRECT_REMOTE_ADDRESS%","user_agent":"%REQ(USER-AGENT)%","host":"%REQ(:AUTHORITY)%","request":"%REQ(:METHOD)% %REQ(X-ENVOY-ORIGINAL-PATH?:PATH)% %PROTOCOL%","request_time":"%DURATION%","status":"%RESPONSE_CODE%","status_details":"%RESPONSE_CODE_DETAILS%","bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","upstream_address":"%UPSTREAM_HOST%","upstream_response_flags":"%RESPONSE_FLAGS%","upstream_response_time":"%RESPONSE_DURATION%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_cluster":"%UPSTREAM_CLUSTER%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","request_method":"%REQ(:METHOD)%","request_path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","request_protocol":"%PROTOCOL%","tls_protocol":"%DOWNSTREAM_TLS_VERSION%","request_id":"%REQ(X-REQUEST-ID)%","sni_host":"%REQUESTED_SERVER_NAME%","apigee_dynamic_data":"%DYNAMIC_METADATA(envoy.lua)%"}'
      components:
      - enabled: true
        name: istio-ingressgateway
        k8s:
          service:
            type: LoadBalancer
            ports:
            - name: status-port
              port: 15021
              targetPort: 15021
            - name: http2
              port: 80
              targetPort: 8080
            - name: https
              port: 443
              targetPort: 8443
    
  2. Instala Anthos Service Mesh con istioctl mediante el perfil asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1264-1" \
        --filename overlayfile.yaml

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

    kubectl get pods -n istio-system
    NAME                                   READY   STATUS    RESTARTS   AGE
    istio-ingressgateway-88b6fd976-flgp2   1/1     Running   0          3m13s
    istio-ingressgateway-88b6fd976-p5dl9   1/1     Running   0          2m57s
    istiod-asm-1264-1-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1264-1-798ffb964-fnj8c       1/1     Running   1          3m21s

    El argumento --set revision añade una etiqueta de revisión con el formato istio.io/rev=1.6.11-asm.1 a istiod. El webhook del inyector automático de sidecars usa la etiqueta de revisión para asociar los sidecars inyectados con una revisión de istiod concreta. Para habilitar la inyección automática de sidecar en un espacio de nombres, debe etiquetarlo con una revisión que coincida con la etiqueta de istiod.

  3. Comprueba que la instalación se ha completado:
    kubectl get svc -n istio-system

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

    NAME                   TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                                                                      AGE
    istio-ingressgateway   LoadBalancer   172.200.48.52    34.74.177.168   15021:30479/TCP,80:30030/TCP,443:32200/TCP,15012:32297/TCP,15443:30244/TCP   3m35s
    istiod                 ClusterIP      172.200.18.133   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        4m46s
    istiod-asm-1264-1       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

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_HOME}/apigeectl apply, comprueba el estado de tus pods y, a continuación, ejecuta ${APIGEECTL_HOME}/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_HOME}/apigeectl apply:
      ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/ORIGINAL_OVERRIDES.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 apigeeds ßpod esté en ejecución.

    4. Ejecuta apigeectl init:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/ORIGINAL_OVERRIDES.yaml