Cloud Service Mesh deinstallieren
Auf dieser Seite wird erläutert, wie Sie Cloud Service Mesh deinstallieren, wenn Sie die Istio APIs verwenden. Wenn Sie Compute Engine APIs verwenden, sind keine Schritte erforderlich. Die Unterschiede finden Sie in der Cloud Service Mesh – Übersicht.
Wenn Sie dieser Anleitung zum Deinstallieren von Cloud Service Mesh folgen, werden alle Konfigurationen unabhängig vom Typ der Steuerungsebene (clusterintern oder verwaltet) entfernt. Wenn Sie eine Migration von clusterintern zu verwaltet durchführen, folgen Sie stattdessen der Migrationsanleitung.
Cloud Service Mesh deinstallieren
Mit den folgenden Befehlen können Sie alle Cloud Service Mesh-Komponenten deinstallieren. Mit diesen Befehlen werden auch der Namespace istio-system und alle benutzerdefinierten Ressourcendefinitionen (Custom Resource Definitions, CRDs) gelöscht, einschließlich aller von Ihnen angewendeten CRDs.
So verhindern Sie eine Unterbrechung des Anwendungstraffics:
- Führen Sie ein Downgrade aller STRICT mTLS-Richtlinien auf PERMISSIVE aus.
- Entfernen Sie alle AuthorizationPolicy, die den Traffic blockieren können.
Deaktivieren Sie die automatische Verwaltung für diesen Cluster (unabhängig davon, ob Sie sie angewendet haben direkt oder über die Standardkonfiguration der Flotte):
gcloud container fleet mesh update \ --management manual \ --memberships MEMBERSHIP_NAME \ --project FLEET_PROJECT_ID \ --location MEMBERSHIP_LOCATIONErsetzen Sie Folgendes:
- MEMBERSHIP_NAME ist der Mitgliedschaftsname, der bei der Registrierung des Clusters bei der Flotte aufgeführt wurde.
- MEMBERSHIP_LOCATION ist der Standort Ihrer Mitgliedschaft (entweder
eine Region oder
global).
Deaktivieren Sie die automatische Sidecar-Einfügung für Ihre Namespaces, sofern sie aktiviert ist. Führen Sie den folgenden Befehl aus, um Namespace-Labels aufzurufen:
kubectl get namespace YOUR_NAMESPACE --show-labelsDie Ausgabe sieht in etwa so aus:
NAME STATUS AGE LABELS demo Active 4d17h istio.io/rev=asm-181-5
Wenn in der Ausgabe unter der Spalte
LABELSistio.io/rev=angezeigt wird, entfernen Sie dies:kubectl label namespace YOUR_NAMESPACE istio.io/rev-Wenn in der Ausgabe unter der Spalte
LABELSistio-injectionangezeigt wird, entfernen Sie dies:kubectl label namespace YOUR_NAMESPACE istio-injection-Wenn Sie weder die Labels
istio.io/revnochistio-injectionsehen, wurde die automatische Einfügung im Namespace nicht aktiviert.Starten Sie Ihre Arbeitslasten mit eingefügten Sidecar-Dateien neu, um die Proxys zu entfernen.
Wenn Sie verwaltetes Cloud Service Mesh verwenden, prüfen Sie, welche Steuerungsebene in Ihrem Cluster implementiert ist. So können Sie in den nächsten Schritten relevante Ressourcen löschen.
Wenn Sie verwaltetes Cloud Service Mesh verwenden, entfernen Sie alle
controlplanerevision-Ressourcen im Cluster:kubectl delete controlplanerevision asm-managed asm-managed-rapid asm-managed-stable -n istio-system --ignore-not-found=trueLöschen Sie Webhooks aus Ihrem Cluster, sofern vorhanden.
Clusterinternes Cloud Service Mesh
Löschen Sie
validatingwebhooksconfigurationundmutatingwebhookconfiguration.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.comVerwaltetes Cloud Service Mesh
A. Löschen Sie die
validatingwebhooksconfiguration:kubectl delete validatingwebhookconfiguration istiod-istio-system-mcpB. Löschen Sie alle
mutatingwebhookconfiguration.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNELSobald alle Arbeitslasten gestartet und keine Proxys beobachtet wurden, können Sie die Steuerungsebene im Cluster sicher löschen, um die Abrechnung zu beenden.
Führen Sie den folgenden Befehl aus, um die clusterinterne Steuerungsebene zu entfernen:
istioctl uninstall --purgeWenn keine anderen Steuerungsebenen vorhanden sind, können Sie den Namespace
istio-systemlöschen, um alle Cloud Service Mesh-Ressourcen zu entfernen. Löschen Sie andernfalls die Dienste, die den Überarbeitungen von Cloud Service Mesh entsprechen. Dadurch werden freigegebene Ressourcen wie CRDs nicht gelöscht.Löschen Sie die Namespaces
istio-systemundasm-system:kubectl delete namespace istio-system asm-system --ignore-not-found=truePrüfen Sie, ob die Löschvorgänge erfolgreich waren:
kubectl get nsDie Ausgabe sollte den Status
Terminatinganzeigen und wie angegeben zurückgegeben werden, andernfalls müssen Sie möglicherweise alle verbleibenden Ressourcen in den Namespaces manuell löschen und es noch einmal versuchen.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71mWenn Sie Ihre Cluster löschen oder bereits gelöscht haben, stellen Sie sicher, dass die Registrierung jedes Clusters bei Ihrer Flotte aufgehoben wird.
Wenn Sie die Standardkonfiguration der verwalteten Cloud Service Mesh-Flotte aktiviert haben und sie für zukünftige Cluster deaktivieren möchten, deaktivieren Sie sie. Sie können diesen Schritt überspringen, wenn Sie die Deinstallation nur für einen einzelnen Cluster durchführen.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_IDDabei ist FLEET_PROJECT_ID die ID Ihres Flotten-Hostprojekts.
Wenn Sie Cloud Service Mesh auf Flotteneebene nicht mehr verwenden möchten, deaktivieren Sie die Service Mesh-Funktion für Ihr Flotten-Hostprojekt.
gcloud container hub mesh disable --project FLEET_PROJECT_IDDabei ist FLEET_PROJECT_ID die ID Ihres Flotten-Hostprojekts.
Wenn Sie verwaltetes Cloud Service Mesh aktiviert haben, prüfen Sie, ob verwaltete Ressourcen vorhanden sind, und löschen Sie sie gegebenenfalls:
Löschen Sie das
mdp-controller-Deployment:kubectl delete deployment mdp-controller -n kube-systemWenn Sie die Steuerungsebene
TRAFFIC_DIRECTORverwenden, bereinigen Sie die Ressourcen für transparente Systemdiagnosen. Normalerweise werden diese automatisch entfernt. Sie können aber so vorgehen, um sicherzustellen, dass sie bereinigt werden:Löschen Sie das
snk-DaemonSet.kubectl delete daemonset snk -n kube-systemLöschen Sie die Firewallregel.
gcloud compute firewall-rules delete gke-csm-thc-FIRST_8_CHARS_OF_CLUSTER_IDErsetzen Sie Folgendes:
- FIRST_8_CHARS_OF_CLUSTER_ID sind die ersten acht Zeichen der Cluster-ID für Ihren spezifischen Cluster.
Prüfen Sie, ob die ConfigMap
istio-cni-plugin-configvorhanden ist:kubectl get configmap istio-cni-plugin-config -n kube-systemLöschen Sie die ConfigMap
istio-cni-plugin-config, falls vorhanden:kubectl delete configmap istio-cni-plugin-config -n kube-systemLöschen Sie das
istio-cni-node-DaemonSet:kubectl delete daemonset istio-cni-node -n kube-system
Wenn Sie verwaltetes Cloud Service Mesh deinstallieren, wenden Sie sich an den Support, um sicherzustellen, dass alle Google Cloud Ressourcen bereinigt werden. Andernfalls werden der Namespace
istio-systemund die ConfigMaps möglicherweise weiterhin neu erstellt.
Nach Abschluss dieser Schritte werden alle Cloud Service Mesh-Komponenten, einschließlich Proxys, clusterinterner Zertifizierungsstellen und RBAC-Rollen und -Bindungen, systematisch aus dem Cluster entfernt. Während der Installation erhält ein Google-eigenes Dienstkonto die erforderlichen Berechtigungen, um die Service Mesh-Ressourcen im Cluster einzurichten. Diese Deinstallationsanleitung widerruft diese Berechtigungen nicht, sodass Cloud Service Mesh in Zukunft nahtlos reaktiviert werden kann.
.