Disinstalla Cloud Service Mesh
Questa pagina spiega come disinstallare Cloud Service Mesh.
Disinstalla Cloud Service Mesh
Utilizza i seguenti comandi per disinstallare tutti i componenti di Cloud Service Mesh. Questi comandi eliminano anche lo spazio dei nomi istio-system
e tutte le definizioni di risorse personalizzate (CRD), incluse quelle che hai applicato.
Per evitare l'interruzione del traffico delle applicazioni:
- Esegui il downgrade di eventuali criteri mTLS RISTRICTIVI a PERMISSIVE.
- Rimuovi eventuali AuthorizationPolicy che potrebbero bloccare il traffico.
Disattiva la gestione automatica su questo cluster (indipendentemente dal fatto che sia stata applicata direttamente o utilizzando la configurazione predefinita del parco risorse):
gcloud container fleet mesh update --management manual
Disattiva l'inserimento automatico dei sidecar nei tuoi spazi dei nomi, se è abilitato. Esegui il seguente comando per visualizzare le etichette dello spazio dei nomi:
kubectl get namespace YOUR_NAMESPACE --show-labels
L'output è simile al seguente:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
Se nell'output della colonna
LABELS
vediistio.io/rev=
,rimuovilo:kubectl label namespace YOUR_NAMESPACE istio.io/rev-
Se nell'output della colonna
LABELS
vediistio-injection
,rimuovilo:kubectl label namespace YOUR_NAMESPACE istio-injection-
Se non vedi le etichette
istio.io/rev
oistio-injection
, significa che l'iniezione automatica non è stata attivata nello spazio dei nomi.Riavvia i workload in cui sono stati iniettati i sidecar per rimuovere i proxy.
Se utilizzi Cloud Service Mesh gestito, rimuovi eventuali risorse
controlplanerevision
nel cluster:kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system
dove RELEASE_CHANNEL è il canale di rilascio che hai eseguito il provisioning, ad esempio
asm-managed
,asm-managed-rapid
oasm-managed-stable
.Elimina i webhook dal cluster, se esistono.
Cloud Service Mesh nel cluster
Elimina
validatingwebhooksconfiguration
emutatingwebhookconfiguration
.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
Cloud Service Mesh gestito
A. Elimina
validatingwebhooksconfiguration
.kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
B. Elimina
mutatingwebhookconfiguration
.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
Una volta avviati tutti i carichi di lavoro e non vengono rilevati proxy, puoi eliminare in sicurezza il piano di controllo all'interno del cluster per interrompere la fatturazione. Se hai implementato un piano di controllo gestito, questo viene eliminato automaticamente con il passaggio precedente.
Per rimuovere il piano di controllo in cluster, esegui il comando seguente:
istioctl x uninstall --purge
Se non sono presenti altri piani di controllo, puoi eliminare lo spazio dei nomi
istio-system
per eliminare tutte le risorse di Cloud Service Mesh. In caso contrario, elimina i servizi corrispondenti alle revisioni di Cloud Service Mesh. In questo modo, eviterai di eliminare le risorse condivise, come i CRD.Elimina gli spazi dei nomi
istio-system
easm-system
:kubectl delete namespace istio-system asm-system --ignore-not-found=true
Controlla se le eliminazioni sono andate a buon fine:
kubectl get ns
L'output deve indicare uno stato
Terminating
e restituire il risultato mostrato, altrimenti potrebbe essere necessario eliminare manualmente le risorse rimanenti nei namespace e riprovare.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m
- Se intendi eliminare i cluster o li hai già eliminati, assicurati che ciascun cluster sia annullato nel tuo parco risorse.
Se hai attivato la configurazione predefinita del parco risorse Cloud Service Mesh gestito e vuoi disattivarla per i cluster futuri, disattivala. Puoi saltare questo passaggio se esegui la disinstallazione solo da un singolo cluster.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID
dove FLEET_PROJECT_ID è l'ID del progetto host del parco risorse.
Se utilizzi Cloud Service Mesh gestito, elimina il deployment
mdp-controller
:kubectl delete deployment mdp-controller -n kube-system
Verifica se il configmap
istio-cni-plugin-config
è presente:kubectl get configmap istio-cni-plugin-config -n kube-system
Se presente, elimina il configmap
istio-cni-plugin-config
:kubectl delete configmap istio-cni-plugin-config -n kube-system
Elimina il set di daemon
istio-cni-node
:kubectl delete daemonset istio-cni-node -n kube-system
Al termine di questi passaggi, tutti i componenti di Cloud Service Mesh, inclusi i proxy, le autorità di certificazione in cluster e i ruoli e le associazioni RBAC, vengono rimossi sistematicamente dal cluster. Durante la procedura 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 re-attivazione senza problemi di Cloud Service Mesh in futuro.