Eseguire l'upgrade di Apigee hybrid alla versione 1.6

Panoramica dell'upgrade alla versione 1.6.9.

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

  1. Esegui il backup dell'installazione ibrida.
  2. Controlla la versione di Kubernetes ed esegui l'upgrade come appropriato.
  3. Installa la versione 1.6.9 del runtime di hybrid.
  4. Esegui l'upgrade di ASM.

Prerequisito

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

Eseguire l'upgrade alla versione 1.6

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

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  2. (Consigliato) Crea una copia di backup della directory $APIGEECTL_HOME/ della versione 1.5. Ad esempio:
    tar -czvf $APIGEECTL_HOME/../apigeectl-v1.5-backup.tar.gz $APIGEECTL_HOME
  3. (Consigliato) Esegui il backup del database Cassandra seguendo le istruzioni riportate in Backup e recupero di Cassandra
  4. Esegui l'upgrade della piattaforma Kubernetes alle versioni supportate da hybrid 1.6. Se hai bisogno di aiuto, consulta la documentazione della tua piattaforma.
  5. Se utilizzi una versione di cert-manager precedente alla 1.5.4, devi eseguirne l'upgrade alla versione 1.5.4.
    1. Controlla la versione corrente di cert-manager utilizzando il seguente comando:

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

      Viene restituito qualcosa di simile al seguente:

      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. Rimuovi i deployment utilizzando il seguente comando:
      $ kubectl delete -n cert-manager deployment cert-manager cert-manager-cainjector cert-manager-webhook
      
    3. Esegui l'upgrade di cert-manager alla versione 1.5.4 utilizzando il seguente comando:
      $ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.4/cert-manager.yaml
      
  6. Crea l'apigee-runtimeaccount di servizio necessario per l'utilizzo con i token OAuth di Google. Utilizza lo strumento create-service-account:
    1. Crea l'account di servizio:
      ./tools/create-service-account --env prod --profile apigee-runtime
    2. Aggiungi il nuovo account di servizio al file overrides.yaml di Apigee:
      envs:
       - name: "environment-name"
         … … …
         serviceAccountPaths:
           runtime: "path-to-service-account-file"
         … … …
  7. Aggiungi la proprietà udca.serviceAccountPath al livello superiore nel file delle sostituzioni, oltre alla voce in envs. udca deve comparire nelle override due volte, una a livello di ambiente e una a livello di organizzazione, in parallelo con connectAgent, logger, mart, metrics e watcher.

    Ad esempio:

    … … …
    
    metrics:
      serviceAccountPath: "metrics-service-account-file"
    
    udca:
      serviceAccountPath: "udca-service-account-file"
    
    watcher:
      serviceAccountPath: "watcher-service-account-file"
    … … …
  8. (Facoltativo) Se prevedi di utilizzare Cloud Trace, assicurati che il tuo account di servizio apigee-runtime abbia il ruolo Google Agente Cloud Trace (roles/cloudtrace.agent). Puoi farlo nell'interfaccia utente di Cloud Console > IAM & Amministrazione > Account di servizio o con i seguenti comandi:
    1. Ottieni l'indirizzo email del tuo account di servizio apigee-runtime con il seguente comando:
      gcloud iam service-accounts list --filter "apigee-runtime"

      Se corrisponde allo schema apigee-runtime@$ORG_NAME.iam.gserviceaccount.com, puoi utilizzarlo nel passaggio successivo.

    2. Assegna il ruolo Agente Cloud Trace all'account di servizio:
      gcloud projects add-iam-policy-binding $PROJECT_ID \
          --member="serviceAccount:apigee-runtime@$PROJECT_ID.iam.gserviceaccount.com" \
          --role="roles/cloudtrace.agent"

      Dove: $PROJECT_ID è il nome del progetto Google Cloud in cui è installato Apigee Hybrid.

Installa il runtime di hybrid 1.6.9

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

    Linux

    Linux a 64 bit:

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

    Mac OS

    Mac a 64 bit:

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

    Windows

    Windows a 64 bit:

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

    Linux

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.5/

    Mac OS

    mv $APIGEECTL_HOME/ $APIGEECTL_HOME-v1.5/ 

    Windows

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

    Linux

    tar xvzf filename.tar.gz -C ./

    Mac OS

    tar xvzf filename.tar.gz -C ./

    Windows

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

    Linux

    mv directory-name-linux apigeectl

    Mac OS

    mv directory-name-mac apigeectl

    Windows

    rename directory-name-windows apigeectl
  6. Passa alla directory apigeectl:
    cd ./apigeectl

    L'eseguibile apigeectl si trova in questa directory.

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

    Linux

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Mac OS

    export APIGEECTL_HOME=$PWD
    echo $APIGEECTL_HOME

    Windows

    set APIGEECTL_HOME=%CD%
    echo %APIGEECTL_HOME%
  8. Verifica la versione di apigeectl con il comando version:
    ./apigeectl version
    Version: 1.6.9
  9. Passa alla directory hybrid-base-directory/hybrid-files. La directory hybrid-files contiene i file di configurazione, ad esempio il file delle sostituzioni, i certificati e gli account di servizio. Ad esempio:
    cd $APIGEECTL_HOME/../hybrid-files
  10. Verifica che kubectl sia impostato sul contesto corretto utilizzando il seguente comando. Il contesto corrente deve essere impostato sul cluster in cui stai eseguendo l'upgrade di Apigee hybrid.
    kubectl config get-contexts | grep \*
  11. Nella directory hybrid-files:
    1. Aggiorna i seguenti link simbolici a $APIGEECTL_HOME. Questi link ti consentono di eseguire il comando apigeectl appena installato dall'interno della directory hybrid-files:
      ln -nfs $APIGEECTL_HOME/tools tools
      ln -nfs $APIGEECTL_HOME/config config
      ln -nfs $APIGEECTL_HOME/templates templates
      ln -nfs $APIGEECTL_HOME/plugins plugins
    2. Per verificare che i link simbolici siano stati creati correttamente, esegui il seguente comando e assicurati che i percorsi dei link rimandino alle posizioni corrette:
      ls -l | grep ^l
    3. Esegui un'inizializzazione di prova per verificare la presenza di errori:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/OVERRIDES.yaml --dry-run=client

      dove OVERRIDES è il nome del file delle sostituzioni.

    4. Se non ci sono errori, inizializza la versione ibrida 1.6.9:
      ${APIGEECTL_HOME}/apigeectl init -f ./overrides/OVERRIDES.yaml
    5. Controlla lo stato dell'inizializzazione:
      ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml
    6. Verifica la presenza di errori con una prova secca del comando apply:
      ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --dry-run=client
    7. Se non sono presenti errori, applica le sostituzioni. Seleziona e segui le istruzioni per gli ambienti di produzione o per gli ambienti demo/sperimentali, a seconda dell'installazione.

      Produzione

      Per gli ambienti di produzione, devi eseguire l'upgrade di ogni componente ibrida singolarmente e controllare lo stato del componente di cui è stato eseguito l'upgrade prima di procedere con il componente successivo.

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

        Vai al passaggio successivo solo quando i pod sono pronti.

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

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

        • Tutti gli ambienti contemporaneamente: applica le sostituzioni a tutti gli ambienti contemporaneamente e controlla il completamento:
          ${APIGEECTL_HOME}/apigeectl apply -f ./overrides/OVERRIDES.yaml --all-envs
          ${APIGEECTL_HOME}/apigeectl check-ready -f ./overrides/OVERRIDES.yaml

      Demo/sperimentale

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

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

Esegui l'upgrade di ASM alla versione 1.12

Esegui l'upgrade utilizzando la documentazione ASM appropriata per la tua piattaforma:

Le istruzioni per installare e configurare ASM variano a seconda della piattaforma. Le piattaforme sono suddivise nelle seguenti categorie:

  • GKE: cluster Google Kubernetes Engine in esecuzione su Google Cloud.
  • Al di fuori di Google Cloud: cluster Anthos in esecuzione su:
    • Cluster Anthos su VMware (GKE on-prem)
    • Anthos on bare metal
    • Anthos clusters on AWS
    • Amazon EKS
  • Altre piattaforme Kubernetes: cluster conformi creati ed eseguiti su:
    • AKS
    • EKS
    • OpenShift

GKE

La sequenza per eseguire l'upgrade alla versione 1.12.9 di ASM per l'installazione ibrida è la seguente:

  1. Preparati per l'upgrade.
  2. Installa la nuova versione di ASM.
  3. Elimina i deployment, i servizi e gli webhook della versione ASM precedente dalla tua installazione corrente.
  4. Esegui l'upgrade dei gateway e configura i nuovi webhook.

Per eseguire l'upgrade alla versione ASM 1.12.9 per l'infrastruttura ibrida su GKE:

  1. Esamina i requisiti in Eseguire l'upgrade di Anthos Service Mesh, ma non eseguire ancora l'upgrade.
  2. Prima di installare la nuova versione, determina la revisione corrente. Ti serviranno queste informazioni per eliminare i deployment, i servizi e gli webhook della versione ASM precedente dalla tua installazione attuale. Utilizza il seguente comando per archiviare la revisione corrente di istiod in una variabile di ambiente:
    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 nuovo file overlay.yaml o verifica che quello esistente overlay.yaml contenga i seguenti contenuti:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      revision: asm-1129-3
      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. Segui le istruzioni riportate nelle seguenti sezioni della documentazione di ASM:
    1. Scarica asmcli
    2. Concedere le autorizzazioni di amministratore del cluster
    3. Convalida progetto e cluster
    4. Eseguire l'upgrade con funzionalità facoltative. Interrompi prima di iniziare la sezione "Eseguire l'upgrade dei gateway"
  5. Elimina l'webhook con modifica e l'webhook di convalida:
    1. cd nella directory in cui hai installato asmcli.
    2. Memorizza la nuova revisione corrente in una variabile di ambiente da utilizzare nello script per eliminare i webhook:
      UPGRADE_REV="asm-1129-3"
    3. Crea uno script shell contenente i seguenti comandi:
      #!/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. Esegui lo script per eliminare gli webhook attuali.
  6. Segui i passaggi descritti in Eseguire l'upgrade dei gateway per creare i nuovi webhook e trasferire il traffico ai nuovi gateway.

Al di fuori di Google Cloud

Queste istruzioni riguardano l'upgrade di ASM su:

  • Cluster Anthos su VMware (GKE on-prem)
  • Anthos on bare metal
  • Anthos clusters on AWS
  • Amazon EKS

La sequenza per eseguire l'upgrade alla versione 1.12.9 di ASM per l'installazione ibrida è la seguente:

  1. Preparati per l'upgrade.
  2. Installa la nuova versione di ASM.
  3. Elimina l'webhook di modifica e l'webhook di convalida dall'installazione corrente.
  4. Esegui l'upgrade dei gateway e configura i nuovi webhook.
  1. Esamina i requisiti in Eseguire l'upgrade di Anthos Service Mesh, ma non eseguire ancora l'upgrade.
  2. Prima di installare la nuova versione, determina la revisione corrente. Ti serviranno queste informazioni per eliminare il webhook di convalida e il webhook di mutazione dalla tua attuale installazione di ASM. Utilizza il seguente comando per archiviare la revisione corrente di Istiod in una variabile di ambiente:
    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 nuovo file overlay.yaml o verifica che quello esistente overlay.yaml contenga i seguenti contenuti:
    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      revision: asm-1129-3
      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. Segui le istruzioni riportate nelle seguenti sezioni della documentazione di ASM:
    1. Scarica asmcli
    2. Concedere le autorizzazioni di amministratore del cluster
    3. Convalida progetto e cluster
    4. Eseguire l'upgrade con funzionalità facoltative. Interrompi prima di iniziare la sezione "Eseguire l'upgrade dei gateway"
  5. Elimina l'webhook con modifica e l'webhook di convalida:
    1. cd nella directory in cui hai installato asmcli.
    2. Memorizza la nuova revisione corrente in una variabile di ambiente da utilizzare nello script per eliminare i webhook:
      UPGRADE_REV="asm-1129-3"
    3. Crea uno script shell contenente i seguenti comandi:
      #!/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. Esegui lo script per eliminare gli webhook attuali.
  6. Segui i passaggi descritti in Eseguire l'upgrade dei gateway per creare i nuovi webhook e trasferire il traffico ai nuovi gateway.

AKS / EKS

In queste istruzioni, la procedura di upgrade della versione istio-1.12.9-asm.3 di Anthos Service Mesh (ASM) sui cluster Anthos collegati è la stessa di un'installazione da zero.

Preparazione all'installazione di Anthos Service Mesh

  1. Elimina l'webhook con mutazioni e l'webhook di convalida:
    1. cd nella directory in cui hai installato asmcli.
    2. Memorizza la nuova revisione corrente in una variabile di ambiente da utilizzare nello script per eliminare i webhook:
      UPGRADE_REV="asm-1129-3"
    3. Crea uno script shell contenente i seguenti comandi:
      #!/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. Esegui lo script per eliminare gli webhook attuali.
  2. Linux

  3. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  4. Scarica il file della firma e utilizza openssl per verificarla:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  5. Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro corrente denominata istio-1.12.9-asm.3 che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh si trova nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  6. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  7. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  8. Mac OS

  9. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  10. Scarica il file della firma e utilizza openssl per verificarla:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  11. Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.12.9-asm.3-osx.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro corrente denominata istio-1.12.9-asm.3 che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh si trova nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  12. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  13. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  14. Windows

  15. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  16. Scarica il file della firma e utilizza openssl per verificarla:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  17. Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.12.9-asm.3-win.zip

    Il comando crea una directory di installazione nella directory di lavoro corrente denominata istio-1.12.9-asm.3 che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh si trova nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests\profiles.
  18. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  19. Per comodità, aggiungi gli strumenti nella directory \bin al tuo PATH:
    set PATH=%CD%\bin:%PATH%
  20. Ora che ASM Istio è installato, controlla la versione di istioctl:
    istioctl version
  21. Crea uno spazio dei nomi denominato istio-system per i componenti del piano di controllo:
    kubectl create namespace istio-system

Installazione di Anthos Service Mesh

  1. Modifica il file overlay.yaml o creane uno nuovo con i seguenti contenuti:
    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. Installa Anthos Service Mesh con istioctl utilizzando il profilo asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3" \
        --filename overlayfile.yaml

    L'output dovrebbe avere il seguente aspetto:

    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-1129-3-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1129-3-798ffb964-fnj8c       1/1     Running   1          3m21s

    L'argomento --set revision aggiunge a istiod un'etichetta di revisione nel formato istio.io/rev=asm-1129-3. L'etichetta di revisione viene utilizzata dal webhook dell'iniettore di sidecar automatico per associare i sidecar iniettati a una determinata revisione dell'istiod. Per attivare l'iniezione automatica di sidecar per uno spazio dei nomi, devi etichettarlo con una revisione corrispondente all'etichetta su istiod.

  3. Verifica che l'installazione sia stata completata:
    kubectl get svc -n istio-system

    L'output dovrebbe avere il seguente aspetto:

    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-1129-3       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

OpenShift

In queste istruzioni, la procedura di upgrade della versione istio-1.12.9-asm.3 di Anthos Service Mesh (ASM) sui cluster Anthos collegati è la stessa di un'installazione da zero.

Preparazione all'installazione di Anthos Service Mesh

  1. Elimina l'webhook con mutazioni e l'webhook di convalida:
    1. cd nella directory in cui hai installato asmcli.
    2. Memorizza la nuova revisione corrente in una variabile di ambiente da utilizzare nello script per eliminare i webhook:
      UPGRADE_REV="asm-1129-3"
    3. Crea uno script shell contenente i seguenti comandi:
      #!/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. Esegui lo script per eliminare gli webhook attuali.
  2. Linux

  3. Concedi la limitazione del contesto di sicurezza anyuid (SCC) a istio-system con il seguente comando OpenShift CLI (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  4. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz
  5. Scarica il file della firma e utilizza openssl per verificarla:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig
    openssl dgst -verify /dev/stdin -signature istio-1.12.9-asm.3-linux-amd64.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  6. Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.12.9-asm.3-linux-amd64.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro corrente denominata istio-1.12.9-asm.3 che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh si trova nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  7. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  8. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  9. Mac OS

  10. Concedi la limitazione del contesto di sicurezza anyuid (SCC) a istio-system con il seguente comando OpenShift CLI (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  11. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz
  12. Scarica il file della firma e utilizza openssl per verificarla:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.12.9-asm.3-osx.tar.gz.1.sig istio-1.12.9-asm.3.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  13. Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.12.9-asm.3-osx.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro corrente denominata istio-1.12.9-asm.3 che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh si trova nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests/profiles.
  14. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  15. Per comodità, aggiungi gli strumenti nella directory /bin al tuo PATH:
    export PATH=$PWD/bin:$PATH
  16. Windows

  17. Concedi la limitazione del contesto di sicurezza anyuid (SCC) a istio-system con il seguente comando OpenShift CLI (oc):
    oc adm policy add-scc-to-group anyuid system:serviceaccounts:istio-system
  18. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro corrente:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip
  19. Scarica il file della firma e utilizza openssl per verificarla:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.12.9-asm.3-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.12.9-asm.3-win.zip.1.sig istio-1.12.9-asm.3.win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF
  20. Estrai i contenuti del file in qualsiasi posizione del file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.12.9-asm.3-win.zip

    Il comando crea una directory di installazione nella directory di lavoro corrente denominata istio-1.12.9-asm.3 che contiene:

    • Applicazioni di esempio nella directory samples.
    • Lo strumento a riga di comando istioctl che utilizzi per installare Anthos Service Mesh si trova nella directory bin.
    • I profili di configurazione di Anthos Service Mesh si trovano nella directory manifests\profiles.
  21. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh:
    cd istio-1.12.9-asm.3
  22. Per comodità, aggiungi gli strumenti nella directory \bin al tuo PATH:
    set PATH=%CD%\bin:%PATH%
  23. Ora che ASM Istio è installato, controlla la versione di istioctl:
    istioctl version
  24. Crea uno spazio dei nomi denominato istio-system per i componenti del piano di controllo:
    kubectl create namespace istio-system

Installazione di Anthos Service Mesh

  1. Modifica il file overlay.yaml o creane uno nuovo con i seguenti contenuti:
    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. Installa Anthos Service Mesh con istioctl utilizzando il profilo asm-multicloud:
    istioctl install \
        --set profile=asm-multicloud \
        --set revision="asm-1129-3" \
        --filename overlayfile.yaml

    L'output dovrebbe avere il seguente aspetto:

    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-1129-3-798ffb964-2ls88       1/1     Running   0          3m21s
    istiod-asm-1129-3-798ffb964-fnj8c       1/1     Running   1          3m21s

    L'argomento --set revision aggiunge a istiod un'etichetta di revisione nel formato istio.io/rev=1.6.11-asm.1. L'etichetta di revisione viene utilizzata dal webhook dell'iniettore di sidecar automatico per associare i sidecar iniettati a una determinata revisione dell'istiod. Per attivare l'iniezione automatica di sidecar per uno spazio dei nomi, devi etichettarlo con una revisione corrispondente all'etichetta su istiod.

  3. Verifica che l'installazione sia stata completata:
    kubectl get svc -n istio-system

    L'output dovrebbe avere il seguente aspetto:

    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-1129-3       ClusterIP      172.200.63.220   <none>          15010/TCP,15012/TCP,443/TCP,15014/TCP                                        3m43s

Rollback di un upgrade

Per eseguire il rollback di un upgrade precedente:

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

      dove NAMESPACE è il tuo spazio dei nomi Apigee hybrid.

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

      L'output dovrebbe avere il seguente aspetto:

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

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

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