Modernisierung der verwalteten Steuerungsebene

Google aktualisiert nach und nach bestehende Flotten, die die von ISTIOD verwaltete Steuerungsebene verwendet haben, auf die TRAFFIC_DIRECTOR-Implementierung. Standardmäßig migriert Google Ihre Flotten automatisch. Sie können die Migration aber auch selbst durchführen. Informationen dazu, welche Steuerungsebene für Ihre Flotte verwendet wird, finden Sie unter Implementierung der Steuerungsebene prüfen.

Beachten Sie Folgendes, wenn Sie Ihre Flotte auf die Modernisierung vorbereiten:

  1. Zur Vorbereitung auf die Modernisierung haben Sie zwei Möglichkeiten, den Prozess zu steuern:

    • Automatische Migration durch Google (Standardeinstellung): Sie können die Reihenfolge, in der Ihre Cluster modernisiert werden, mithilfe der Anleitung unter Von Google gesteuerte Modernisierung anpassen.

    • Kundengetriebene Migration (optional): Sie können die Modernisierung Ihrer Flotten selbst vorantreiben, indem Sie sie gemäß der Anleitung unter Kundengetriebene Modernisierung kennzeichnen.

  2. Die von Google gesteuerte Modernisierung ist die Standardeinstellung. Bei dieser Option entscheidet Google, wann Ihre Flotten für die Modernisierung bereit sind. Google plant die Modernisierung Ihrer Flotten und benachrichtigt Sie vor Beginn des Vorgangs.

  3. Wenn Sie einen Cluster modernisieren, werden Arbeitslasten mit Proxys neu gestartet. Wenn Sie die Best Practices für Kubernetes einhalten, sollte dies keine Ausfallzeiten verursachen. Außerdem löst Google die Modernisierung während eines Wartungsfensters aus, sofern Sie eines konfiguriert haben. Nach dem Start wird der Vorgang mit einer zusätzlichen Wartezeit von 6 Tagen abgeschlossen, bevor er als abgeschlossen markiert wird. Wenn bei der Überwachung Probleme erkannt werden, können Sie ein Rollback anfordern.

  4. Bei einer kundengetriebenen Modernisierung werden Sie von Google benachrichtigt, wenn Ihre Flotten für die Modernisierung bereit sind. Sie können dann clusterweise festlegen, wann die Modernisierung ausgelöst werden soll. Anschließend markieren Sie jede Flottenmodernisierung als abgeschlossen.

  5. Sobald eine Flotte modernisiert wurde, entfernt Google alle Istio-basierten Komponenten.

  6. Für die Implementierung der TRAFFIC_DIRECTOR-Steuerungsebene muss Ihr Cluster in einer Flotte registriert sein, in der die Mesh-Funktion aktiviert ist. Wenn Sie die Einrichtung mithilfe von Legacy-Tools durchgeführt haben, registriert Google Ihren Cluster automatisch mit der gkehub.googleapis.com Membership API bei der Flotte des Projekts. Wenn Sie eine Automatisierung haben, die die Registrierung eines Clusters aufhebt, müssen Sie sie vor der Modernisierung entfernen.

Von Google getriebene Modernisierung

Diese Option ist die Standardeinstellung, wenn Sie Ihre Flotten nicht für die kundengetriebene Modernisierung kennzeichnen. Google überwacht Ihre Flotten, um festzustellen, wann sie sicher modernisiert werden können. Sobald alle meshfähigen Flotten in Ihrer Organisation bereit sind, wird die Modernisierung für Ihre Organisation geplant.

Mehrere Flotten

Wenn Ihre Organisation mehrere Flotten mit verwaltetem Cloud Service Mesh hat, können Sie die Reihenfolge festlegen, in der Google Ihre Flotten modernisiert. Dazu müssen Sie dem Projektlabel mesh-modernization-order einen der Werte early, default oder late zuweisen. Google führt die Modernisierung jeder Gruppe durch, bevor die Modernisierung einer Flotte in der nächsten Gruppe beginnt. Flotten, für die Sie eine kundengetriebene Modernisierung ausgewählt haben, werden bei dieser Sortierung nicht berücksichtigt.

Verwenden Sie den folgenden Befehl, um das mesh-modernization-order-Label für eine Flotte festzulegen:

gcloud alpha projects update FLEET_PROJECT_ID --update-labels="mesh-modernization-order=VALUE"

Eine Anleitung zum Festlegen von Projektlabels mit der Console oder REST finden Sie im Dokument Labels erstellen und verwalten.

Wenn Sie keine Google Cloud Organisationen verwenden, werden Ihre Flotten unabhängig geplant und modernisiert. Sie können die Reihenfolge nicht steuern.

Multi-Cluster-Meshes

Wenn eine Flotte mehrere Cluster mit verwaltetem Cloud Service Mesh hat, können Sie die Reihenfolge festlegen, in der Google die Cluster modernisiert. Dazu müssen Sie das Clusterlabel mesh-modernization-order auf einen der Werte early, default oder late festlegen. Google beginnt mit der Modernisierung jeder Gruppe und wartet, bis die automatisierten Modernisierungsschritte abgeschlossen sind, bevor die Modernisierung eines Clusters in der nächsten Gruppe gestartet wird. Diese Reihenfolge gilt nur innerhalb einer Flotte und hat keine Auswirkungen auf andere Flotten in Ihrer Organisation, die möglicherweise parallel modernisiert werden.

Verwenden Sie den folgenden Befehl, um das mesh-modernization-order-Label für einen Cluster festzulegen:

gcloud container clusters update CLUSTER_NAME \
  --location LOCATION \
  --update-labels="mesh-modernization-order=VALUE"

Kundenorientierte Modernisierung

Sie können den genauen Zeitpunkt der Modernisierung selbst auf Flottenebene steuern. Verwenden Sie dazu den folgenden Befehl, um dem Flotten-Hostprojekt ein Label hinzuzufügen:

gcloud alpha projects update FLEET_PROJECT_ID \
  --update-labels="mesh-modernization-mode=manual"

Wenn Ihre Google Cloud Organisation mehrere Flotten hat, wird jede nicht gekennzeichnete Flotte für die von Google gesteuerte Modernisierung geplant.

Sobald Ihre Flotte modernisiert werden kann, erhalten Sie eine Benachrichtigung im Status des Features auf Flottenebene. Sie müssen die Modernisierung innerhalb von drei Monaten nach Erhalt dieser Benachrichtigung starten.

Diese Dokumentation wird aktualisiert, um Details zur manuellen Auslösung der Modernisierung zu enthalten. Abonnieren Sie den Feed mit den Cloud Service Mesh-Versionshinweisen, um benachrichtigt zu werden.

Aktive Modernisierung für die Migration durch Google

In diesem Abschnitt werden die Schritte der von Google unterstützten Modernisierung beschrieben.

Flotten modernisieren

Google löst die aktive Modernisierung der einzelnen Flotten Ihrer Organisation aus. Das bedeutet, dass für jede Flotte die folgenden Schritte ausgeführt werden:

  1. Alle Cluster mit mesh-modernization-order von early modernisieren
  2. Alle Cluster mit mesh-modernization-order von default oder nicht angegeben modernisieren
  3. Alle Cluster mit mesh-modernization-order von late modernisieren
  4. Warten Sie, bis die Modernisierung jedes Clusters als abgeschlossen gekennzeichnet ist. Sie müssen also mindestens 6 Arbeitstage warten, nachdem Sie den letzten Pod in einem Cluster dieser Flotte neu gestartet haben.
  5. Schließen Sie die Modernisierung dieser Flotte ab und entfernen Sie schließlich die Istio-basierten Komponenten.

Cluster modernisieren

Während der aktiven Modernisierung eines Clusters werden beide Steuerungsebenenimplementierungen vorübergehend nebeneinander ausgeführt. Dabei werden die folgenden Aufgaben auf sichere und kontrollierte Weise verarbeitet:

  1. Aktivieren Sie die neue Steuerungsebene. Wenn Sie Wartungsfenster für Ihren Cluster konfiguriert haben und die von Google gesteuerte Modernisierung verwenden, beginnt dieser Schritt während eines Wartungsfensters und wird fortgesetzt, bis er abgeschlossen ist.
  2. Leiten Sie den Traffic zur neuen Steuerungsebene um. Wenn Sie Wartungsfenster für Ihren Cluster konfiguriert haben und die von Google gesteuerte Modernisierung verwenden, beginnt dieser Schritt während eines Wartungsfensters und wird fortgesetzt, bis er abgeschlossen ist.
    • Von der Kubernetes-Bereitstellung verwaltete Pods mit Cloud Service Mesh-Proxys werden neu gestartet, damit sie eine neue Verbindung zur neuen Steuerungsebene herstellen können.
    • Die Pods werden in immer größeren Wellen neu gestartet, wobei nach jeder Welle eine Wartezeit für die Überwachung eingeräumt wird.
  3. Nach der Modernisierung eines Clusters dauert es mindestens sechs Arbeitstage, bis die Modernisierung als abgeschlossen markiert wird.

Mit dem folgenden Google Cloud CLI-Befehl können Sie den Status der aktiven Modernisierung prüfen:

gcloud container fleet mesh describe --project FLEET_PROJECT_ID

Im Feld für clusterspezifische membershipStates-Bedingungen wird eine der folgenden Bedingungen angezeigt:

...
membershipStates:
  projects/FLEET_PROJ/locations/us-central1/memberships/MEMBERSHIP:
    servicemesh:
      conditions:
      - code: MODERNIZATION_IN_PROGRESS
        details: ...
        documentationLink: ...
        severity: INFO
...
      # If you see this, see instructions provided in the details and documentationLink fields.
      - code: MODERNIZATION_ACTION_REQUIRED
        details: [details about required actions]
        documentationLink: [link to documentation for required actions]
        severity: WARNING
...
      - code: MODERNIZATION_COMPLETED
        details: ...
        documentationLink: ...
        severity: INFO

Planung und Benachrichtigung

Sie sollten mindestens zwei Wochen vor der Aktualisierung benachrichtigt werden, dass ein Cluster aktualisiert werden soll. Benachrichtigungen sind in Ihren Bedingungen für den Zustand von Funktionen auf Clusterebene verfügbar.

Verwenden Sie den folgenden Google Cloud CLI-Befehl, um die Benachrichtigung zu prüfen:

gcloud container fleet mesh describe --project=FLEET_PROJECT_ID

Die Ergebnisse sollten in etwa so aussehen:

membershipStates:
  projects/656460026795/locations/us-central1/memberships/cluster:
    servicemesh:
      conditions:
      - code: MODERNIZATION_SCHEDULED
        details: This cluster has been scheduled for modernization on or after (date ~ at least 2 weeks).
        documentationLink: 
        severity: INFO