Disinstallazione di Anthos Service Mesh

Questa pagina spiega come disinstallare Anthos Service Mesh.

Disinstallazione di Anthos Service Mesh

Utilizza i comandi seguenti per disinstallare tutti i componenti di Anthos Service Mesh. Questi comandi eliminano anche lo spazio dei nomi istio-system e tutte le definizioni di risorse personalizzate (CRD), inclusi eventuali CRD che hai applicato.

  1. Per evitare l'interruzione del traffico dell'applicazione:

    • Esegui il downgrade di tutti i criteri mTLS STRICT a PERMISSIVE.
    • Rimuovi tutti i criteri AuthorizationPolicy che potrebbero bloccare il traffico.
  2. Disabilita la gestione automatica su questo cluster (applicata direttamente o utilizzando la configurazione predefinita del parco risorse):

      gcloud container fleet mesh update --management manual
    
  3. Disabilita l'inserimento automatico collaterale nei tuoi spazi dei nomi, se è abilitata. Esegui questo 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, rimuovilo:

     kubectl label namespace YOUR_NAMESPACE istio.io/rev-
    

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

     kubectl label namespace YOUR_NAMESPACE istio-injection-
    

    Se non vedi le etichette istio.io/rev o istio-injection, l'inserimento automatico non è stato abilitato nello spazio dei nomi.

  4. Riavvia i carichi di lavoro in cui sono stati inseriti i file collaterali per rimuovere i proxy.

  5. Se utilizzi Anthos 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 esistenti.

    Anthos Service Mesh nel cluster

    Elimina validatingwebhooksconfiguration e mutatingwebhookconfiguration.

    kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
    

    Anthos Service Mesh gestito

    A. Elimina il validatingwebhooksconfiguration.

    kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
    

    B. Elimina il mutatingwebhookconfiguration.

    kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
    
  7. Quando tutti i carichi di lavoro sono disponibili e non sono stati osservati proxy, puoi eliminare in sicurezza il piano di controllo nel cluster per interrompere la fatturazione. Se hai eseguito il deployment di un piano di controllo gestito, questo viene eliminato automaticamente con il passaggio precedente.

    Per rimuovere il piano di controllo nel cluster, esegui il comando seguente:

    istioctl x uninstall --purge
    

    Se non ci sono altri piani di controllo, puoi eliminare lo spazio dei nomi istio-system per eliminare tutte le risorse Anthos Service Mesh. In caso contrario, elimina i servizi corrispondenti alle revisioni di Anthos Service Mesh. Ciò evita di eliminare 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 tornare come mostrato, altrimenti potresti dover eliminare manualmente eventuali risorse rimanenti negli spazi dei nomi 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 sia non registrato dal tuo parco risorse.
  10. Se hai abilitato la configurazione predefinita del parco risorse Anthos Service Mesh gestito e vuoi disattivarla per i cluster futuri, disabilitala. Puoi saltare questo passaggio se stai eseguendo 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 Anthos Service Mesh gestito, elimina il deployment mdp-controller:

     kubectl delete deployment mdp-controller -n kube-system
    
  12. Controlla se è presente la mappa di configurazione istio-cni-plugin-config:

     kubectl get configmap istio-cni-plugin-config -n kube-system
    

    Se presente, elimina la 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 Anthos Service Mesh, inclusi proxy, autorità di certificazione nel cluster, ruoli e associazioni RBAC, vengono sistematicamente rimossi 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 interruzioni di Anthos Service Mesh in futuro.