Questa guida spiega come eseguire il downgrade di Anthos Service Mesh da 1.6.14 a 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.
Panoramica del downgrade
Questa sezione illustra i passaggi da seguire per eseguire il downgrade di Anthos Service Mesh.
Preparazione
Consulta le funzionalità supportate e questa guida per acquisire familiarità con le funzionalità e la procedura di downgrade.
Se hai abilitato funzionalità facoltative quando hai installato la versione precedente di Anthos Service Mesh, devi abilitare le stesse funzionalità quando esegui il downgrade. Puoi abilitare le funzionalità facoltative aggiungendo i flag
--set values
o specificando il flag-f
con un file YAML quando esegui il comandoistioctl install
.
Esegui il downgrade
Segui i passaggi in questa guida per prepararti al downgrade di Anthos Service Mesh.
Testa l'applicazione per verificare che i carichi di lavoro funzionino correttamente.
Configurazione dell'ambiente
Devi disporre dei seguenti strumenti sulla macchina da 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.
- Lo strumento a riga di comando
curl
. - Google Cloud CLI.
Dopo l'installazione di Google Cloud CLI:
Esegui l'autenticazione con Google Cloud CLI:
gcloud auth login
Aggiorna i componenti:
gcloud components update
Installa
kubectl
:gcloud components install kubectl
Installa la versione richiesta di
kpt
:curl -L https://github.com/GoogleContainerTools/kpt/releases/download/v0.39.2/kpt_linux_amd64 > kpt_0_39_2 chmod +x kpt_0_39_2 alias kpt="$(readlink -f kpt_0_39_2)"
Cambia il contesto nel tuo cluster utente:
kubectl config use-context CLUSTER_NAME
Concedi le autorizzazioni di amministratore del cluster al tuo account utente (l'indirizzo email di accesso a Google Cloud). Devi disporre di queste autorizzazioni per creare le regole di controllo dell'controllo dell'accesso basato sui ruoli (RBAC) necessarie per Anthos Service Mesh:
kubectl create clusterrolebinding cluster-admin-binding \ --clusterrole=cluster-admin \ --user=USER_ACCOUNT
Download del file di installazione in corso...
-
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
-
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 /dev/stdin -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
-
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 nella directory
samples
. - Lo strumento a riga di comando
istioctl
che utilizzi per installare Anthos Service Mesh si trova nella directorybin
. - I profili di configurazione di Anthos Service Mesh si trovano nella directory
manifests/profiles
.
- Applicazioni di esempio nella directory
-
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
-
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
-
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 nella directory
samples
. - Lo strumento a riga di comando
istioctl
che utilizzi per installare Anthos Service Mesh si trova nella directorybin
. - I profili di configurazione di Anthos Service Mesh si trovano nella directory
manifests/profiles
.
- Applicazioni di esempio nella directory
-
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
-
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
-
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 nella directory
samples
. - Lo strumento a riga di comando
istioctl
che utilizzi per installare Anthos Service Mesh si trova nella directorybin
. - I profili di configurazione di Anthos Service Mesh si trovano nella directory
manifests/profiles
.
- Applicazioni di esempio nella directory
-
Assicurati di essere nella directory principale dell'installazione di Anthos Service Mesh.
cd istio-1.5.10-asm.2
-
Per praticità, aggiungi gli strumenti nella directory
/bin
al tuo PERCORSO:export PATH=$PWD/bin:$PATH
Linux
Mac OS
Windows
Downgrade di Anthos Service Mesh
Per eseguire il downgrade di Anthos Service Mesh:
istioctl install --set profile=asm-multicloud
Controlla i componenti del piano di controllo
Il downgrade richiede la reinstallazione dei componenti del piano di controllo, il cui completamento 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
È necessario inserire nuovamente il proxy sidecar in tutti i carichi di lavoro in esecuzione sul cluster prima del downgrade, in modo da avere la versione corrente di Anthos Service Mesh.
Con l'inserimento automatico dei file collaterali, puoi aggiornare i file collaterali per i pod esistenti con un riavvio. La modalità di riavvio dei pod dipende dal fatto che siano stati creati nell'ambito di un deployment.
Se hai utilizzato un deployment, riavvialo, in modo da riavviare tutti i pod con i file collaterali:
kubectl rollout restart deployment -n YOUR_NAMESPACE
Se non hai utilizzato un deployment, elimina i pod, che vengono ricreati automaticamente con i file collaterali:
kubectl delete pod -n YOUR_NAMESPACE --all
Verifica che tutti i pod nello spazio dei nomi abbiano dei sidecar inseriti:
kubectl get pod -n YOUR_NAMESPACE
Nel seguente esempio di output del comando precedente, puoi notare che la colonna
READY
indica che esistono due container per ciascuno dei tuoi carichi di lavoro: il container principale e il container per il proxy sidecar.NAME READY STATUS RESTARTS AGE YOUR_WORKLOAD 2/2 Running 0 20s ...