Désinstaller Cloud Service Mesh
Cette page explique comment désinstaller Cloud Service Mesh si vous utilisez les API Istio. Si vous utilisez les API Compute Engine, aucune étape n'est nécessaire. Pour comprendre les différences, consultez la présentation de Cloud Service Mesh.
Suivez ces instructions pour désinstaller Cloud Service Mesh et supprimer toutes les configurations quel que soit le type de plan de contrôle (en cluster ou géré). Si vous migrez d'un contrôleur intégré à un contrôleur géré, suivez plutôt le guide de migration.
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.
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.
Désactivez la gestion automatique sur ce cluster (que vous l'ayez appliquée directement ou à l'aide de la configuration par défaut du parc) :
gcloud container fleet mesh update \ --management manual \ --memberships MEMBERSHIP_NAME \ --project FLEET_PROJECT_ID \ --location MEMBERSHIP_LOCATIONRemplacez les éléments suivants :
- MEMBERSHIP_NAME est le nom d'appartenance répertorié après avoir vérifié que votre cluster était enregistré dans le parc.
- MEMBERSHIP_LOCATION est l'emplacement de votre abonnement (une région ou
global).
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-labelsLe 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 colonneLABELS, supprimez-le :kubectl label namespace YOUR_NAMESPACE istio.io/rev-Si l'élément
istio-injectionapparaît dans le résultat sous la colonneLABELS, supprimez-le :kubectl label namespace YOUR_NAMESPACE istio-injection-Si vous ne voyez aucun des libellés
istio.io/revouistio-injection, l'injection automatique n'était pas activée sur l'espace de noms.Redémarrez vos charges de travail comportant des side-cars injectés pour supprimer les proxys.
Si vous utilisez Cloud Service Mesh géré, vérifiez l'implémentation du plan de contrôle dont vous disposez dans votre cluster. Cela vous aidera à supprimer les ressources concernées lors des étapes suivantes.
Si vous utilisez Cloud Service Mesh géré, supprimez toutes les ressources
controlplanerevisiondu cluster :kubectl delete controlplanerevision asm-managed asm-managed-rapid asm-managed-stable -n istio-system --ignore-not-found=trueSupprimez les webhooks de votre cluster, s'ils existent.
Cloud Service Mesh intégré au cluster
Supprimez
validatingwebhooksconfigurationetmutatingwebhookconfiguration.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.comCloud Service Mesh géré
A. Supprimez
validatingwebhooksconfiguration.kubectl delete validatingwebhookconfiguration istiod-istio-system-mcpB. Supprimez tous les
mutatingwebhookconfiguration.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNELUne 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.
Pour supprimer le plan de contrôle dans le cluster, exécutez la commande suivante :
istioctl uninstall --purgeS'il n'y a pas d'autres plans de contrôle, vous pouvez supprimer l'espace de noms
istio-systempour vous débarrasser de toutes les ressources Cloud Service Mesh. Sinon, supprimez les services correspondant aux révisions de Cloud Service Mesh. Cela permet d'éviter la suppression de ressources partagées, telles que les CRD.Supprimez les espaces de noms
istio-systemetasm-system:kubectl delete namespace istio-system asm-system --ignore-not-found=trueVérifiez si les suppressions ont réussi :
kubectl get nsL'état
Terminatinget 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 71mSi vous supprimez vos clusters ou si vous les avez déjà supprimés, assurez-vous que chacun d'eux est désenregistré de votre parc.
Si vous avez activé la configuration par défaut du parc Cloud Service Mesh géré et que vous souhaitez la désactiver pour les futurs clusters, désactivez-la. Vous pouvez ignorer cette étape si vous ne désinstallez que depuis un seul cluster.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_IDoù FLEET_PROJECT_ID est l'ID de votre projet hôte de parc.
Si vous prévoyez d'arrêter d'utiliser Cloud Service Mesh au niveau du parc, désactivez la fonctionnalité de maillage de services pour votre projet hôte de parc.
gcloud container hub mesh disable --project FLEET_PROJECT_IDoù FLEET_PROJECT_ID est l'ID de votre projet hôte de parc.
Si vous avez activé Cloud Service Mesh géré, vérifiez et supprimez les ressources gérées si elles sont présentes :
Supprimez le déploiement
mdp-controller:kubectl delete deployment mdp-controller -n kube-systemRécupérez, puis supprimez la ressource personnalisée de contrôle du plan de données :
Obtenez le CR de contrôle du plan de données :
kubectl get dataplanecontrolSupprimez le CR de contrôle du plan de données :
kubectl delete dataplanecontrol DATA_PLANE_CONTROL_CR_NAMERemplacez DATA_PLANE_CONTROL_CR_NAME par le résultat de la commande précédente.
Supprimez les CRD
controlplanerevisionet dataplanecontrol :kubectl delete crd controlplanerevisions.mesh.cloud.google.com dataplanecontrols.mesh.cloud.google.com
Si vous disposez de l'implémentation du plan de contrôle
TRAFFIC_DIRECTOR, nettoyez les ressources de vérification de l'état transparentes. Normalement, ces fichiers sont supprimés automatiquement, mais vous pouvez vous assurer qu'ils sont nettoyés en procédant comme suit :Supprimez le DaemonSet
snk.kubectl delete daemonset snk -n kube-systemSupprimez la règle de pare-feu.
gcloud compute firewall-rules delete gke-csm-thc-FIRST_8_CHARS_OF_CLUSTER_IDRemplacez les éléments suivants :
- FIRST_8_CHARS_OF_CLUSTER_ID correspond aux huit premiers caractères de l'ID de cluster de votre cluster spécifique.
Vérifiez si le fichier configmap
istio-cni-plugin-configest présent :kubectl get configmap istio-cni-plugin-config -n kube-systemSi le configmap
istio-cni-plugin-configest présent, supprimez-le :kubectl delete configmap istio-cni-plugin-config -n kube-systemSupprimez le DaemonSet
istio-cni-node:kubectl delete daemonset istio-cni-node -n kube-system
Si vous désinstallez un maillage de services Cloud Service Mesh géré, contactez l'assistance pour vous assurer que toutes les ressourcesGoogle Cloud sont nettoyées. L'espace de noms
istio-systemet les cartes de configuration peuvent également continuer à être recréés si vous n'effectuez pas cette étape.
Une fois ces étapes effectuées, tous les composants Cloud Service Mesh, y compris les proxys, les autorités de certification dans le cluster, ainsi que les rôles et liaisons RBAC, sont systématiquement supprimés du cluster. Lors du processus d'installation, un compte de service appartenant à Google reçoit les autorisations nécessaires pour établir les ressources du maillage de services dans le cluster. Ces instructions de désinstallation ne révoquent pas ces autorisations, ce qui permet de réactiver facilement Cloud Service Mesh à l'avenir.