Disinstalla Cloud Service Mesh

Questa pagina spiega come disinstallare Cloud Service Mesh.

Disinstalla Cloud Service Mesh

Utilizza i comandi seguenti 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 l'interruzione del traffico delle applicazioni:

    • Esegui il downgrade di tutti i criteri mTLS RISTRICT a PERMISSIVE.
    • Rimuovi qualsiasi AuthorizationPolicy che potrebbe bloccare il traffico.
  2. Disabilita Automatic Managed Cloud Service Mesh tramite l'API Fleet se abilitato.

  3. Disattiva l'inserimento automatico dei sidecar nei tuoi spazi dei nomi, se è abilitato. Corsa il comando seguente 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 nella colonna istio.io/rev= vedi istio.io/rev=,rimuovilo:

     kubectl label namespace YOUR_NAMESPACE istio.io/rev-
    

    Se nell'output nella colonna istio-injection vedi istio-injection,rimuovilo:

     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 con sidecar inseriti per rimuovere i proxy.

  5. Se utilizzi Cloud Service Mesh gestito, rimuovi eventuali 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 gli eventuali webhook dal cluster.

    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. 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 eseguito il deployment gestito, viene eliminato automaticamente con passaggio.

    Per rimuovere il piano di controllo all'interno del cluster, esegui il comando seguente:

    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 i 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 riuscite:

     kubectl get ns
    

    L'output dovrebbe indicare uno stato Terminating e restituire come mostrato, altrimenti potresti dover eliminare manualmente le risorse rimanenti e riprova.

     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 utilizzi Cloud Service Mesh gestito, elimina il deployment mdp-controller:

     kubectl delete deployment mdp-controller -n kube-system
    
  11. Elimina il daemonset istio-cni-node:

     kubectl delete daemonset istio-cni-node -n kube-system