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.

  1. Per evitare interruzioni del traffico delle applicazioni:

    • Esegui il downgrade di qualsiasi criterio mTLS STRICT a PERMISSIVE.
    • Rimuovi qualsiasi AuthorizationPolicy che potrebbe bloccare il traffico.
  2. Disabilita la gestione automatica su questo cluster (se l'hai applicata) direttamente o utilizzando la configurazione predefinita del parco risorse):

      gcloud container fleet mesh update --management manual
    
  3. Disabilita l'inserimento automatico dei file collaterali negli spazi dei nomi, se è abilitata. 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 vedi istio.io/rev= nell'output sotto la colonna LABELS, per rimuoverlo:

     kubectl label namespace YOUR_NAMESPACE istio.io/rev-
    

    Se vedi istio-injection nell'output sotto la colonna LABELS, per rimuoverlo:

     kubectl label namespace YOUR_NAMESPACE istio-injection-
    

    Se non vedi le etichette istio.io/rev o istio-injection, significa che l'iniezione automatica non è stata attivata nello spazio dei nomi.

  4. Riavvia i carichi di lavoro in cui sono stati iniettati i sidecar per rimuovere i proxy.

  5. 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 di cui hai eseguito il provisioning, ad esempio asm-managed, asm-managed-rapid o asm-managed-stable,

  6. Elimina i webhook dal cluster, se presenti.

    Cloud Service Mesh nel cluster

    Elimina validatingwebhooksconfiguration e mutatingwebhookconfiguration.

    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
    
  7. Quando vengono visualizzati tutti i carichi di lavoro e non sono stati osservati proxy, puoi Elimina il piano di controllo nel 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 nel cluster, esegui questo comando:

    istioctl x uninstall --purge
    

    Se non esistono altri piani di controllo, puoi eliminare istio-system per eliminare tutte le risorse Cloud Service Mesh. In caso contrario, elimina e servizi corrispondenti alle revisioni di Cloud Service Mesh. In questo modo si evita l'eliminazione. e risorse condivise, come i CRD.

  8. Elimina gli spazi dei nomi istio-system e asm-system:

     kubectl delete namespace istio-system asm-system --ignore-not-found=true
    
  9. Controlla se le eliminazioni sono andate a buon fine:

     kubectl get ns
    

    L'output deve indicare uno stato Terminating e restituire il valore 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
    
    1. Se eliminerai i cluster o li hai già eliminati, assicurati che ogni cluster non registrati dal tuo parco risorse.
  10. 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.

  11. Se utilizzi Cloud Service Mesh gestito, elimina il deployment mdp-controller:

     kubectl delete deployment mdp-controller -n kube-system
    
  12. 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
    
  13. Elimina il daemonset 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 all'interno del cluster e i ruoli e le associazioni RBAC, vengono rimossi sistematicamente dal cluster. Durante il processo di installazione, All'account di servizio di proprietà di Google vengono concesse le autorizzazioni necessarie per stabilire alle risorse mesh di servizi all'interno del cluster. Queste istruzioni per la disinstallazione non revocare queste autorizzazioni, consentendo una facile riattivazione Cloud Service Mesh in futuro.