Désinstaller Cloud Service Mesh

Cette page explique comment désinstaller Cloud Service Mesh.

Désinstaller Cloud Service Mesh

Exécutez les commandes suivantes pour désinstaller tous les composants Cloud Service Mesh. Ces commandes suppriment l'espace de noms istio-system et toutes les définitions de ressources personnalisées (CRD, Custom Resource Definition), y compris celles que vous avez appliquées.

  1. Pour éviter toute interruption du trafic de l'application, procédez comme suit :

    • Revenez aux règles mTLS STRICT en PERMISSIVE.
    • Supprimez toute règle AuthorizationPolicy susceptible de bloquer le trafic.
  2. Désactivez le maillage de services cloud géré automatique via l'API Fleet, si cette option est activée.

  3. Si l'injection side-car automatique sur vos espaces de noms est activée, désactivez-la. Exécutez la commande suivante pour afficher les libellés d'espace de noms :

     kubectl get namespace YOUR_NAMESPACE --show-labels
    

    Le résultat ressemble à ce qui suit :

     NAME   STATUS   AGE     LABELS
     demo   Active   4d17h   istio.io/rev=asm-181-5

    Si l'élément istio.io/rev= apparaît dans le résultat sous la colonne LABELS, supprimez-le :

     kubectl label namespace YOUR_NAMESPACE istio.io/rev-
    

    Si l'élément istio-injection apparaît dans le résultat sous la colonne LABELS, supprimez-le :

     kubectl label namespace YOUR_NAMESPACE istio-injection-
    

    Si vous ne voyez aucun des libellés istio.io/rev ou istio-injection, l'injection automatique n'était pas activée sur l'espace de noms.

  4. Redémarrez vos charges de travail comportant des side-cars injectés pour supprimer les proxys.

  5. Si vous utilisez Cloud Service Mesh géré, supprimez toutes les ressources controlplanerevision du cluster:

    kubectl delete controlplanerevision RELEASE_CHANNEL -n istio-system
    

    RELEASE_CHANNEL est le canal de publication que vous avez provisionné, tel que asm-managed, asm-managed-rapid ou asm-managed-stable.

  6. Supprimez les webhooks de votre cluster, s'ils existent.

    Maillage de services cloud dans le cluster

    Supprimez validatingwebhooksconfiguration et mutatingwebhookconfiguration.

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

    Maillage de services cloud géré

    A. Supprimez validatingwebhooksconfiguration.

    kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
    

    B. Supprimez mutatingwebhookconfiguration.

    kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
    
  7. Une fois que toutes les charges de travail sont accessibles et qu'aucun proxy n'est observé, vous pouvez supprimer le plan de contrôle au sein du cluster en toute sécurité pour arrêter la facturation. Si vous avez déployé un plan de contrôle géré, il est automatiquement supprimé à l'étape précédente.

    Pour supprimer le plan de contrôle au sein du cluster, exécutez la commande ci-dessous :

    istioctl x uninstall --purge
    

    S'il n'existe aucun autre plan de contrôle, vous pouvez supprimer l'espace de noms istio-system pour vous débarrasser de toutes les ressources Cloud Service Mesh. Sinon, supprimez les services correspondant aux révisions Cloud Service Mesh. Cela permet d'éviter la suppression de ressources partagées, telles que les CRD.

  8. Supprimez les espaces de noms istio-system et asm-system :

     kubectl delete namespace istio-system asm-system --ignore-not-found=true
    
  9. Vérifiez si les suppressions ont réussi :

     kubectl get ns
    

    L'état Terminating et le résultat ci-dessous doivent s'afficher dans la sortie. Sinon, vous devrez peut-être supprimer manuellement toutes les ressources restantes dans les espaces de noms, puis réessayer.

     NAME                 STATUS       AGE
     istio-system         Terminating  71m
     asm-system           Terminating  71m
    
    1. Si vous souhaitez supprimer vos clusters ou les avoir déjà supprimés, assurez-vous que chaque cluster a été désenregistré de votre parc.
  10. Si vous utilisez le service géré Cloud Service Mesh, supprimez le déploiement mdp-controller:

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

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