Disinstallare Cloud Service Mesh in-cluster
Questa pagina spiega come disinstallare Cloud Service Mesh in-cluster se utilizzi le API Istio. Se utilizzi le API Compute Engine, non sono necessari passaggi. Consulta la panoramica di Cloud Service Mesh per comprendere le differenze.
Se segui queste istruzioni per disinstallare Cloud Service Mesh in-cluster, tutte le configurazioni vengono rimosse.
Se stai disinstallando Cloud Service Mesh gestito, consulta invece la guida alla disinstallazione gestita.
Se stai eseguendo la migrazione da in-cluster a gestito, consulta invece la guida alla migrazione.
Disinstallare Cloud Service Mesh
Utilizza i seguenti comandi per disinstallare tutti i componenti di Cloud Service Mesh.
Per evitare di interrompere il traffico delle applicazioni:
- Esegui il downgrade di tutte le policy mTLS STRICT a PERMISSIVE.
- Rimuovi qualsiasi AuthorizationPolicy che potrebbe bloccare il traffico.
Disattiva l'inserimento automatico di sidecar negli spazi dei nomi, se è abilitato. Esegui il comando seguente per visualizzare le etichette degli spazi dei nomi:
kubectl get namespace YOUR_NAMESPACE --show-labelsL'output è simile al seguente:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
Se vedi
istio.io/rev=nell'output nella colonnaLABELS, rimuovilo:kubectl label namespace YOUR_NAMESPACE istio.io/rev-Se vedi
istio-injectionnell'output nella colonnaLABELS, rimuovilo:kubectl label namespace YOUR_NAMESPACE istio-injection-Se non vedi le etichette
istio.io/revoistio-injection, l'inserimento automatico non è stato abilitato nello spazio dei nomi.Riavvia i carichi di lavoro in cui sono stati inseriti i sidecar per rimuovere i proxy.
Elimina
validatingwebhooksconfigurationemutatingwebhookconfigurationdal cluster, se esistono:kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.comUna volta che tutti i carichi di lavoro sono attivi e non vengono osservati proxy, puoi eliminare in sicurezza il control plane in-cluster per interrompere la fatturazione.
Per rimuovere il control plane in-cluster, esegui il comando seguente:
istioctl uninstall --purgeSe non sono presenti altri control plane, puoi eliminare lo spazio dei nomi
istio-systemper eliminare tutte le risorse di Cloud Service Mesh. In caso contrario, elimina i servizi corrispondenti alle revisioni di Cloud Service Mesh. In questo modo si evita di eliminare le risorse condivise, come i CRD.(Facoltativo) Rimuovi i CR Istio, i CRD Istio, la configmap istio-(revision), la configmap asm-options, gli spazi dei nomi
istio-systemeasm-systemper rimuovere il mesh di servizi dal cluster o utilizzarli in un altro mesh di servizi compatibile con l'API Istio.Rimuovi i CR Istio:
kubectl delete gateways,virtualservices,destinationrules,serviceentries,envoyfilters,sidecars,peerauthentications,requestauthentications,authorizationpolicies,telemetries,wasmplugins,proxyconfigs --all --all-namespacesRimuovi i CRD Istio:
kubectl get crds -o name | grep --color=never 'istio.io' | xargs kubectl deleteRimuovi la configmap istio-(revision). Puoi saltare questo passaggio se elimini lo spazio dei nomi
istio-system.kubectl delete configmap istio-RELEASE_CHANNEL -n istio-systemSostituisci RELEASE_CHANNEL con il canale di rilascio
Rimuovi lo spazio dei nomi
istio-system:kubectl delete namespace istio-system --ignore-not-found=trueRimuovi lo spazio dei nomi
asm-system:kubectl delete namespace asm-system --ignore-not-found=trueVerifica se le eliminazioni sono andate a buon fine:
kubectl get ns ``` The output should indicate a `Terminating` state and return as shown, otherwise you might have to manually delete any remaining resources in the namespaces and try again. ```sh NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m ```
Se eliminerai i cluster o li hai già eliminati, assicurati che ogni cluster sia annullato dalla registrazione dal parco risorse.
Se prevedi di interrompere l'utilizzo di Cloud Service Mesh a livello di parco risorse, disattiva la funzionalità mesh di servizi per il progetto host del parco risorse.
gcloud container hub mesh disable --project FLEET_PROJECT_IDDove FLEET_PROJECT_ID è l'ID del progetto host del parco risorse.
Una volta completati questi passaggi, tutti i componenti di Cloud Service Mesh, inclusi proxy, autorità di certificazione in-cluster e ruoli e binding RBAC, vengono rimossi sistematicamente dal cluster. Durante il processo di installazione, a un account di servizio di proprietà di Google vengono concesse le autorizzazioni necessarie per stabilire le risorse del mesh di servizi all'interno del cluster. Queste istruzioni di disinstallazione non revocano queste autorizzazioni, consentendo una riattivazione senza problemi di Cloud Service Mesh in futuro.