Upgrade di Anthos Service Mesh on-premise

Questa guida spiega come eseguire l'upgrade di Anthos Service Mesh dalla versione 1.4.5+ or 1.5.4+ alla versione 1.5.10 su GKE su VMware.

Il deployment dei componenti del piano di controllo di Anthos Service Mesh richiede circa 5-10 minuti. Inoltre, devi inserire nuovi proxy sidecar in tutti i tuoi carichi di lavoro in modo che vengano aggiornati all'attuale versione di Anthos Service Mesh. Il tempo necessario per aggiornare i proxy sidecar dipende da molti fattori, come il numero di pod e di nodi, le impostazioni di scalabilità del deployment, i budget per l'interruzione dei pod e altre impostazioni di configurazione. Una stima approssimativa del tempo necessario per aggiornare i proxy sidecar è di 100 pod al minuto.

Preparazione per l'upgrade

Questa sezione illustra i passaggi da seguire per eseguire l'upgrade di Anthos Service Mesh.

  1. Consulta le funzionalità supportate e questa guida per acquisire familiarità con le funzionalità e il processo di upgrade.

  2. Se hai abilitato le funzionalità facoltative quando hai installato la versione precedente di Anthos Service Mesh, dovrai abilitare le stesse funzionalità quando esegui l'upgrade. Puoi abilitare le funzionalità facoltative aggiungendo i flag --set values o specificando il flag -f con un file YAML quando esegui il comando istioctl apply.

    Se esegui l'upgrade da Anthos Service Mesh 1.4.5 o versioni successive e hai abilitato funzionalità facoltative in un file YAML, devi convertire il codice YAML dall'API IstioControlPlane all'API IstioOperator.

  3. Programma un tempo di riposo. L'upgrade può richiedere fino a un'ora, a seconda della scala del cluster. Tieni presente che non è incluso il tempo necessario per rieseguire il deployment dei carichi di lavoro per aggiornare i proxy sidecar.

Configurazione dell'ambiente

Sulla macchina locale, installa e inizializza Google Cloud CLI.

Se hai già installato gcloud CLI:

  1. Esegui l'autenticazione con gcloud CLI:

    gcloud auth login
    
  2. Aggiorna i componenti:

    gcloud components update
    
  3. Installa kubectl:

    gcloud components install kubectl
    
  4. Ottieni l'ID del progetto in cui è stato creato il cluster:

    gcloud

    gcloud projects list

    Console

    1. Nella console Google Cloud, vai alla pagina Dashboard:

      Vai alla pagina Dashboard

    2. Fai clic sull'elenco a discesa Seleziona da nella parte superiore della pagina. Nella finestra Seleziona da visualizzata, seleziona il tuo progetto. L'ID progetto viene visualizzato nella scheda Informazioni sul progetto della dashboard del progetto.

  5. Imposta l'ID progetto predefinito per Google Cloud CLI:

    gcloud config set project PROJECT_ID

Impostazione di credenziali e autorizzazioni

  1. Assicurati di avere kubectl per il cluster utente GKE su VMware in cui vuoi installare Anthos Service Mesh. Tieni presente che puoi installare Anthos Service Mesh solo su un cluster utente, non su un cluster di amministrazione.
  2. Concedi all'utente corrente le autorizzazioni di amministratore del cluster. Devi disporre delle seguenti autorizzazioni per creare le regole di controllo dell'accesso basato sui ruoli (RBAC) necessarie per Anthos Service Mesh:
    kubectl create clusterrolebinding cluster-admin-binding \
      --clusterrole=cluster-admin \
      --user="$(gcloud config get-value core/account)"

    Se viene visualizzato l'errore "cluster-admin-binding" already exists, puoi tranquillamente ignorarlo e continuare con l'associazione cluster-admin-binding esistente.

Download del file di installazione in corso...

    Linux

  1. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-linux.tar.gz
  2. Scarica il file della firma e utilizza openssl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-linux.tar.gz.1.sig
    openssl dgst -verify - -signature istio-1.5.10-asm.2-linux.tar.gz.1.sig istio-1.5.10-asm.2-linux.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    L'output previsto è: Verified OK

  3. Estrai i contenuti del file in qualsiasi posizione nel file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.5.10-asm.2-linux.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.5.10-asm.2 che contiene:

    • Applicazioni di esempio in samples
    • I seguenti strumenti nella directory bin:
      • istioctl: utilizzi istioctl per installare Anthos Service Mesh.
      • asmctl: utilizzi asmctl per convalidare la configurazione di sicurezza dopo l'installazione di Anthos Service Mesh. (Attualmente, asmctl non è supportato su GKE su VMware).

  4. Mac OS

  5. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-osx.tar.gz
  6. Scarica il file della firma e utilizza openssl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-osx.tar.gz.1.sig
    openssl dgst -sha256 -verify /dev/stdin -signature istio-1.5.10-asm.2-osx.tar.gz.1.sig istio-1.5.10-asm.2-osx.tar.gz <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    L'output previsto è: Verified OK

  7. Estrai i contenuti del file in qualsiasi posizione nel file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.5.10-asm.2-osx.tar.gz

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.5.10-asm.2 che contiene:

    • Applicazioni di esempio in samples
    • I seguenti strumenti nella directory bin:
      • istioctl: utilizzi istioctl per installare Anthos Service Mesh.
      • asmctl: utilizzi asmctl per convalidare la configurazione di sicurezza dopo l'installazione di Anthos Service Mesh. (Attualmente, asmctl non è supportato su GKE su VMware).

  8. Windows

  9. Scarica il file di installazione di Anthos Service Mesh nella directory di lavoro attuale:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-win.zip
  10. Scarica il file della firma e utilizza openssl per verificare la firma:
    curl -LO https://storage.googleapis.com/gke-release/asm/istio-1.5.10-asm.2-win.zip.1.sig
    openssl dgst -verify - -signature istio-1.5.10-asm.2-win.zip.1.sig istio-1.5.10-asm.2-win.zip <<'EOF'
    -----BEGIN PUBLIC KEY-----
    MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEWZrGCUaJJr1H8a36sG4UUoXvlXvZ
    wQfk16sxprI2gOJ2vFFggdq3ixF2h4qNBt0kI7ciDhgpwS8t+/960IsIgw==
    -----END PUBLIC KEY-----
    EOF

    L'output previsto è: Verified OK

  11. Estrai i contenuti del file in qualsiasi posizione nel file system. Ad esempio, per estrarre i contenuti nella directory di lavoro corrente:
    tar xzf istio-1.5.10-asm.2-win.zip

    Il comando crea una directory di installazione nella directory di lavoro attuale denominata istio-1.5.10-asm.2 che contiene:

    • Applicazioni di esempio in samples
    • I seguenti strumenti nella directory bin:
      • istioctl: utilizzi istioctl per installare Anthos Service Mesh.
      • asmctl: utilizzi asmctl per convalidare la configurazione di sicurezza dopo l'installazione di Anthos Service Mesh. (Attualmente, asmctl non è supportato su GKE su VMware).

  12. Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh.
    cd istio-1.5.10-asm.2
  13. Per praticità, aggiungi gli strumenti nella directory /bin al tuo PERCORSO:
    export PATH=$PWD/bin:$PATH

Upgrade di Anthos Service Mesh

Questa sezione spiega come eseguire l'upgrade di Anthos Service Mesh e attivare le funzionalità predefinite supportate elencate nella pagina Funzionalità supportate. Per informazioni sull'abilitazione delle funzionalità facoltative supportate, consulta Attivazione delle funzionalità facoltative.

Per installare Anthos Service Mesh:

Scegli uno dei seguenti comandi per configurare Anthos Service Mesh in modalità di autenticazione PERMISSIVE mTLS (mutual TLS) o STRICT in modalità mTLS.

mTLS PERMISSIVO

istioctl manifest apply --set profile=asm-onprem

mTLS STRETTA

istioctl manifest apply --set profile=asm-onprem \
  --set values.global.mtls.enabled=true

Controlla i componenti del piano di controllo

L'upgrade richiede la reinstallazione dei componenti del piano di controllo, che richiede circa 5-10 minuti. I vecchi componenti del piano di controllo vengono terminati e poi eliminati man mano che vengono installati i nuovi componenti. Puoi verificare l'avanzamento osservando il valore nella colonna AGE dei carichi di lavoro.

kubectl get pod -n istio-system

Output di esempio:

NAME                                     READY   STATUS        RESTARTS   AGE
istio-ingressgateway-5bfdf7c586-v6wxx    2/2     Terminating   0          25m
istio-ingressgateway-7b598c5557-b88md    2/2     Running       0          5m44s
istiod-78cdbbbdb-d7tps                   1/1     Running       0          5m16s
promsd-576b8db4d6-lqf64                  2/2     Running       1          5m26s

In questo esempio sono presenti due istanze di istio-ingressgateway. È in corso l'arresto dell'istanza con 25m nella colonna AGE. Tutti gli altri componenti sono stati installati di recente.

Aggiornamento dei proxy sidecar

Anthos Service Mesh utilizza i proxy sidecar per migliorare la sicurezza, l'affidabilità e l'osservabilità della rete. Con Anthos Service Mesh, queste funzioni vengono astratte dal container principale dell'applicazione e implementate in un proxy out-of-process comune, fornito come container separato nello stesso pod.

Tutti i carichi di lavoro in esecuzione sul tuo cluster prima dell'installazione di Anthos Service Mesh devono avere inserito o aggiornato il proxy sidecar in modo che abbia la versione attuale di Anthos Service Mesh. Prima di eseguire il deployment di nuovi carichi di lavoro, assicurati di configurare l'inserimento del proxy sidecar in modo che Anthos Service Mesh possa monitorare e proteggere il traffico.

Puoi abilitare l'inserimento automatico di sidecar con un solo comando, ad esempio:

kubectl label namespace NAMESPACE istio-injection=enabled --overwrite

dove NAMESPACE è il nome dello spazio dei nomi per i servizi della tua applicazione oppure default se non hai creato esplicitamente uno spazio dei nomi.

Per maggiori informazioni, consulta Inserimento di proxy sidecar.