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, notwendig ist. Weitere Informationen zu den Unterschieden finden Sie in der Cloud Service Mesh-Übersicht.
Cloud Service Mesh deinstallieren
Deinstallieren Sie mit den folgenden Befehlen alle Cloud Service Mesh-Komponenten. Mit diesen Befehlen werden auch der istio-system
-Namespace 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 direkt oder über die Standardkonfiguration der Flotte angewendet haben:
gcloud container fleet mesh update \ --management manual \ --memberships MEMBERSHIP_NAME \ --project FLEET_PROJECT_ID \ --location MEMBERSHIP_LOCATION
Ersetzen Sie Folgendes:
- MEMBERSHIP_NAME ist der Mitgliedschaftsname, der bei der Registrierung des Clusters bei der Flotte aufgeführt wurde.
- MEMBERSHIP_LOCATION ist der Standort deiner 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-labels
Die 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
LABELS
istio.io/rev=
angezeigt wird, entfernen Sie dies:kubectl label namespace YOUR_NAMESPACE istio.io/rev-
Wenn in der Ausgabe unter der Spalte
LABELS
istio-injection
angezeigt wird, entfernen Sie dies:kubectl label namespace YOUR_NAMESPACE istio-injection-
Wenn Sie weder die Labels
istio.io/rev
nochistio-injection
sehen, 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 das verwaltete Cloud Service Mesh verwenden, prüfen Sie, welche Steuerungsebene in Ihrem Cluster implementiert ist. So können Sie in den nächsten Schritten die entsprechenden Ressourcen löschen.
Wenn Sie ein 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=true
Löschen Sie Webhooks aus Ihrem Cluster, sofern vorhanden.
Cloud Service Mesh im Cluster
validatingwebhooksconfiguration
undmutatingwebhookconfiguration
löschen.kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot
Verwaltetes Cloud Service Mesh
A. Löschen Sie die
validatingwebhooksconfiguration
:kubectl delete validatingwebhookconfiguration istiod-istio-system-mcp
B. Alle
mutatingwebhookconfiguration
löschen.kubectl delete mutatingwebhookconfiguration istiod-RELEASE_CHANNEL
Sobald 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 --purge
Wenn keine anderen Steuerungsebenen vorhanden sind, können Sie den Namespace
istio-system
lö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-system
undasm-system
:kubectl delete namespace istio-system asm-system --ignore-not-found=true
Prüfen Sie, ob die Löschvorgänge erfolgreich waren:
kubectl get ns
Die Ausgabe sollte den Status
Terminating
anzeigen und wie angegeben zurückgegeben werden. Andernfalls müssen Sie möglicherweise alle verbleibenden Ressourcen im Namespace manuell löschen und es noch einmal versuchen.NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m
Wenn Sie Ihre Cluster löschen oder bereits gelöscht haben, muss die Registrierung jedes Clusters in Ihrer Flotte aufgehoben werden.
Wenn Sie die Standardkonfiguration für verwaltetes Cloud Service Mesh für Ihre gesamte 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 in einem einzelnen Cluster ausführen.
gcloud container hub mesh disable --fleet-default-member-config --project FLEET_PROJECT_ID
Dabei ist FLEET_PROJECT_ID die ID Ihres Flottenhostprojekts.
Wenn Sie das verwaltete Cloud Service Mesh aktiviert haben, prüfen und löschen Sie verwaltete Ressourcen, sofern vorhanden:
Löschen Sie das Deployment
mdp-controller
:kubectl delete deployment mdp-controller -n kube-system
Wenn Sie die Implementierung der Steuerungsebene
TRAFFIC_DIRECTOR
haben, bereinigen Sie transparente Systemdiagnose-Ressourcen. Normalerweise werden diese Elemente automatisch entfernt. Sie können jedoch sicherstellen, dass sie bereinigt werden, indem Sie Folgendes tun:Löschen Sie das
snk
-Daemonset.kubectl delete daemonset snk -n kube-system
Löschen Sie die Firewallregel.
gcloud compute firewall-rules delete gke-csm-thc-FIRST_8_CHARS_OF_CLUSTER_ID
Ersetzen Sie Folgendes:
- FIRST_8_CHARS_OF_CLUSTER_ID sind die ersten 8 Zeichen des Cluster-ID für Ihren spezifischen Cluster.
Prüfen Sie, ob die ConfigMap
istio-cni-plugin-config
vorhanden ist:kubectl get configmap istio-cni-plugin-config -n kube-system
Falls vorhanden, löschen Sie die configmap
istio-cni-plugin-config
:kubectl delete configmap istio-cni-plugin-config -n kube-system
Löschen Sie das Daemonset
istio-cni-node
:kubectl delete daemonset istio-cni-node -n kube-system
Wenn Sie das verwaltete Cloud Service Mesh deinstallieren und Ihren Cluster behalten möchten, wenden Sie sich an den Support, damit alle Google Cloud-Ressourcen bereinigt werden. Der
istio-system
-Namespace und die Konfigurationskarten werden möglicherweise auch weiterhin neu erstellt, wenn Sie diesen Schritt nicht ausführen.
Nach Abschluss dieser Schritte werden alle Cloud Service Mesh-Komponenten, einschließlich Proxys, In-Cluster-Zertifizierungsstellen sowie RBAC-Rollen und ‑Bindungen, systematisch aus dem Cluster entfernt. Während der Installation wird eine Dem Google-Dienstkonto werden die erforderlichen Berechtigungen zum Einrichten von Service-Mesh-Ressourcen innerhalb des Clusters. Diese Berechtigungen werden durch diese Deinstallationsanleitung nicht widerrufen, sodass Cloud Service Mesh in Zukunft nahtlos reaktiviert werden kann.