Clusterinternes Cloud Service Mesh deinstallieren
Auf dieser Seite wird beschrieben, wie Sie clusterinternes 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 clusterinternem Cloud Service Mesh folgen, werden alle Konfigurationen entfernt.
Wenn Sie verwaltetes Cloud Service Mesh deinstallieren, folgen Sie stattdessen der Anleitung zur Deinstallation von verwaltetem Cloud Service Mesh.
Wenn Sie von clusterintern zu verwaltet migrieren, folgen Sie stattdessen der Migrationsanleitung.
Cloud Service Mesh deinstallieren
Mit den folgenden Befehlen können Sie alle Cloud Service Mesh-Komponenten deinstallieren.
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 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 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.
Löschen Sie
validatingwebhooksconfigurationundmutatingwebhookconfigurationaus Ihrem Cluster, falls vorhanden:kubectl delete validatingwebhookconfiguration,mutatingwebhookconfiguration -l operator.istio.io/component=Pilot,istio.io/owned-by!=mesh.googleapis.comSobald 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.Optional: Entfernen Sie Istio-CRs, Istio-CRDs, die ConfigMap „istio-(revision)“, die ConfigMap „asm-options“, die Namespaces
istio-systemundasm-system, um Service Mesh aus dem Cluster zu entfernen oder in einem anderen mit der Istio API kompatiblen Service Mesh zu verwenden.Istio-CRs entfernen:
kubectl delete gateways,virtualservices,destinationrules,serviceentries,envoyfilters,sidecars,peerauthentications,requestauthentications,authorizationpolicies,telemetries,wasmplugins,proxyconfigs --all --all-namespacesIstio-CRDs entfernen:
kubectl get crds -o name | grep --color=never 'istio.io' | xargs kubectl deleteEntfernen Sie die ConfigMap „istio-(revision)“. Sie können diesen Schritt überspringen, wenn Sie den Namespace
istio-systemlöschen.kubectl delete configmap istio-RELEASE_CHANNEL -n istio-systemErsetzen Sie RELEASE_CHANNEL durch Ihre Release-Version.
Namespace
istio-systementfernen:kubectl delete namespace istio-system --ignore-not-found=trueNamespace
asm-systementfernen:kubectl delete namespace asm-system --ignore-not-found=truePrüfen Sie, ob die Löschvorgänge erfolgreich waren:
kubectl get ns ``` The output should indicate a `Terminating` state and return as shown, otherwise you might have to manually delete any remaining resources in the namespaces and try again. ```sh NAME STATUS AGE istio-system Terminating 71m asm-system Terminating 71m ```
Wenn Sie Ihre Cluster löschen oder bereits gelöscht haben, stellen Sie sicher, dass jeder Cluster in Ihrer Flotte abgemeldet ist.
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.
Nachdem Sie diese Schritte ausgeführt haben, werden alle Cloud Service Mesh-Komponenten, einschließlich Proxys, clusterinterner Zertifizierungsstellen sowie 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.