Installation, Migration und Upgrade für GKE

In dieser Anleitung wird erläutert, wie Sie die Anthos Service Mesh-Version 1.8.6 für ein Mesh-Netzwerk installieren, migrieren oder ein Upgrade machen, das einen oder mehrere GKE-Cluster im selben Projekt enthält. Sie verwenden ein von Google bereitgestelltes Skript, das Ihr Projekt und Ihren Cluster konfiguriert werden und dann Anthos Service Mesh mithilfe von istioctl install installiert wird.

Sie können diese Anleitung und das Skript für die folgenden weiteren Anwendungsfälle verwenden:

  • Neue Installationen von Anthos Service Mesh 1.8.6.

  • Upgrade von Anthos Service Mesh 1.7.3+ or a 1.8 patch release. Upgrades von früheren Versionen werden nicht unterstützt.

  • Migration von Open-Source-Istio 1.7 or 1.8 zu Anthos Service Mesh. Die Migration von einer früheren Version von Istio wird nicht unterstützt. Lesen Sie den Artikel Migration von Istio vorbereiten, um die Migration zu planen.

Vorbereitung

In diesem Leitfaden wird davon ausgegangen, dass Sie bereits Folgendes haben:

Unterschiede zwischen Anthos und Anthos Service Mesh

  • GKE Enterprise-Abonnenten müssen die GKE Enterprise API aktivieren.

    API aktivieren

  • Auch wenn Sie kein GKE Enterprise-Abonnent sind, können Sie Anthos Service Mesh installieren. Bestimmte UI-Elemente und Features in der Google Cloud Console sind jedoch nur für GKE Enterprise-Abonnenten verfügbar. Informationen dazu, was für Abonnenten und Nicht-Abonnenten verfügbar ist, finden Sie unter Unterschiede zwischen GKE Enterprise und Anthos Service Mesh. Informationen zu den Anthos Service Mesh-Preisen für Nicht-Abonnenten finden Sie unter Preise.

Das Skript aktiviert alle anderen erforderlichen Google APIs für Sie.

Voraussetzungen

  • Ihr GKE-Cluster muss die folgenden Anforderungen erfüllen:

    • Ein Maschinentyp mit mindestens vier vCPUs, z. B. e2-standard-4. Wenn der Maschinentyp für Ihren Cluster nicht mindestens vier vCPUs hat, ändern Sie den Maschinentyp, wie unter Arbeitslasten zu anderen Maschinentypen migrieren beschrieben.

    • Die Mindestanzahl an Knoten hängt vom Maschinentyp ab. Anthos Service Mesh erfordert mindestens acht vCPUs. Wenn der Maschinentyp vier vCPUs hat, muss der Cluster mindestens zwei Knoten haben. Hat der Maschinentyp acht vCPUs, benötigt der Cluster nur einen Knoten. Informationen zum Hinzufügen von Knoten finden Sie unter Größe eines Clusters anpassen.

    • Standardmäßig aktiviert das Skript Workload Identity in Ihrem Cluster. Workload Identity ist die empfohlene Methode zum Aufrufen von Google APIs. Wenn Sie Workload Identity aktivieren, ändert sich die Art und Weise, wie Aufrufe Ihrer Arbeitslasten an Google APIs gesichert werden. Weitere Informationen hierzu finden Sie unter Einschränkungen bei Workload Identity.

      Wenn Sie eine neue Installation vornehmen und die Anthos Service Mesh-Zertifizierungsstelle (Mesh-CA) verwenden möchten, können Sie den Flotten-Workload Identity-Pool als Alternative zu GKE Workload Identity verwenden. Um Mesh-CA mit der Flotten-Workload Identity (Vorschau) zu verwenden, folgen Sie entweder den Schritten unter Cluster registrieren, bevor Sie das Skript ausführen, oder fügen beim Ausführen des Skripts das Flag --enable-registration hinzu, damit das Skript den Cluster für das Projekt registriert, in dem sich der Cluster befindet. Ein Beispiel für die Ausführung des Skripts finden Sie unter Mesh-CA mit dem Flotten-Workload Identity-Pool aktivieren.

    • Es wird empfohlen, den Cluster in einer Release-Version zu registrieren. Dies ist jedoch optional. Es wird empfohlen, sich für die Release-Version "Regular" zu registrieren, da andere Versionen möglicherweise auf einer GKE-Version basieren, die mit Anthos Service Mesh nicht unterstützt wird. 1.8.6. Weitere Informationen finden Sie unter Unterstützte Umgebungen. Folgen Sie der Anleitung unter Vorhandenen Cluster in einer Release-Version registrieren, wenn Sie eine statische GKE-Version haben.

  • Für die Aufnahme in das Service Mesh müssen Dienstports benannt werden und der Name muss das Protokoll des Ports in der folgenden Syntax enthalten: name: protocol[-suffix], wobei die eckigen Klammern ein optionales Suffix angeben, das mit einem Bindestrich beginnen muss. Weitere Informationen finden Sie unter Dienstports benennen.

  • Wenn Sie Anthos Service Mesh in einem privaten Cluster installieren, müssen Sie Port 15017 in der Firewall öffnen, damit der Webhook mit automatischer Sidecar-Einfügung ordnungsgemäß funktioniert. Weitere Informationen finden Sie unter Port auf einem privaten Cluster öffnen.

  • Wenn Sie in Ihrer Organisation einen Dienstperimeter erstellt haben, müssen Sie möglicherweise den Mesh CA-Dienst dem Perimeter hinzufügen. Weitere Informationen finden Sie unter Mesh CA einem Dienstperimeter hinzufügen.

  • Bei Migrationen muss istiod im Namespace istio-system installiert werden, was in der Regel der Fall ist.

  • Mit einem Google Cloud-Projekt kann nur ein Mesh verknüpft sein.

Zertifizierungsstelle auswählen

Bei Neuinstallationen und Migrationen haben Sie die Option, die Anthos Service Mesh-Zertifizierungsstelle (Mesh CA) oder Citadel (jetzt in istiod eingebunden) als Zertifizierungsstelle für die Ausstellung gegenseitiger TLS-Zertifikate (mTLS-Zertifikate) zu verwenden.

Im Allgemeinen empfehlen wir, Mesh-CA zu verwenden, denn:

  • Mesh CA ist ein zuverlässiger und skalierbarer Dienst, der für dynamisch skalierte Arbeitslasten in Google Cloud optimiert ist.
  • Mit Mesh CA verwaltet Google die Sicherheit und Verfügbarkeit des CA-Back-Ends.
  • Mesh CA ermöglicht es Ihnen, sich für alle Cluster auf eine einzige Root of Trust zu verlassen.
Bei neuen Installationen von Anthos Service Mesh aktiviert das Skript standardmäßig Mesh CA.

In einigen Fällen ist es jedoch ratsam, Citadel zu verwenden. Hier einige Beispiele:

  • Mit einer benutzerdefinierten Zertifizierungsstelle.
  • Wenn Sie von Istio migrieren.

    Wenn Sie Citadel auswählen, gibt es keine Ausfallzeiten, da der mTLS-Traffic während der Migration nicht unterbrochen wird. Wenn Sie Mesh-CA auswählen, müssen Sie die Ausfallzeit für die Migration planen, da sich der Root of Trust von Citadel zu Mesh CA ändert. Sie müssen alle Pods in allen Namespaces neu starten, um die Migration zum Mesh-CA Root of Trust abzuschließen. Während dieses Vorgangs können die alten Pods keine mTLS-Verbindungen zu den neuen Pods herstellen.

Zertifikate der Mesh CA enthalten die folgenden Daten zu den Diensten Ihrer Anwendung:

  • Die Google Cloud-Projekt-ID
  • Der GKE-Namespace
  • Der Name des GKE-Dienstkontos

Cluster registrieren

Sie müssen Ihren Cluster bei der Flotte registrieren, um auf die einheitliche Benutzeroberfläche in der Google Cloud Console zugreifen zu können. Ein Flotte ermöglicht die einheitliche Anzeige und Verwaltung der Cluster und ihrer Arbeitslasten, einschließlich Clustern außerhalb von Google Cloud.

Sie können entweder die Schritte unter Cluster registrieren ausführen oder das Flag --enable-registration hinzufügen, wenn Sie das Skript ausführen, damit das Skript den Cluster für das Projekt registriert, in dem sich der Cluster befindet.

Erforderliche Tools installieren

Sie können das Skript in Cloud Shell oder auf Ihrem lokalen Computer ausführen, auf dem Linux ausgeführt wird. Cloud Shell installiert alle erforderlichen Tools vorab. macOS wird nicht unterstützt, da eine ältere Version von Bash enthalten ist.

Cloud Shell

Cloud Shell stellt eine g1-small Compute Engine-VM bereit, auf der ein Debian-basiertes Linux-Betriebssystem ausgeführt wird. Cloud Shell bietet folgende Vorteile:

  • Cloud Shell umfasst gcloud, kubectl, kpt und die anderen erforderlichen Befehlszeilentools.

  • Ihr $HOME-Verzeichnis in Cloud Shell verfügt über 5 GB nichtflüchtigen Speicher.

  • Es stehen verschiedene Texteditoren zur Auswahl:

    • Code-Editor, auf den Sie zugreifen, indem Sie oben im Cloud Shell-Fenster auf klicken.

    • Emacs, Vim oder Nano, auf die Sie in Cloud Shell über die Befehlszeile zugreifen.

So verwenden Sie Cloud Shell:

  1. Öffnen Sie die Google Cloud Console.
  2. Wählen Sie Ihr Google Cloud-Projekt aus.
  3. Klicken Sie im oberen Bereich des Google Cloud Console-Fensters auf Cloud Shell aktivieren.

    Google Cloud Platform Console

    Im unteren Bereich der Google Cloud Console wird ein neues Feld mit einer Cloud Shell-Sitzung und einer Befehlszeilen-Eingabeaufforderung geöffnet.

    Cloud Shell-Sitzung

  4. Aktualisieren Sie die Komponenten:

    gcloud components update
    

    Der Befehl meldet eine Ausgabe, die in etwa so aussieht:

    ERROR: (gcloud.components.update)
    You cannot perform this action because the gcloud CLI component manager
    is disabled for this installation. You can run the following command
    to achieve the same result for this installation:
    
    sudo apt-get update && sudo apt-get --only-upgrade install ...
  5. Kopieren Sie den langen Befehl und fügen Sie ihn ein, um die Komponenten zu aktualisieren.

Lokaler Linux-Computer

  1. Die folgenden Tools müssen installiert sind:

  2. Authentifizieren Sie sich über die gcloud CLI:

    gcloud auth login
    
  3. Aktualisieren Sie die Komponenten:

    gcloud components update
    
  4. Prüfen Sie, ob sich git in Ihrem Pfad befindet, damit kpt es finden kann.

Skript herunterladen

In diesem Abschnitt wird beschrieben, wie Sie das Skript herunterladen, die erforderlichen und optionalen Parameter festlegen und das Skript ausführen. Eine detaillierte Beschreibung der Funktionsweise des Skripts finden Sie unter Grundlegendes zum Skript.

  1. Laden Sie die Version des Skripts herunter, mit der Anthos Service Mesh 1.8.6 in das aktuelle Arbeitsverzeichnis installiert wird:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.8 > install_asm
    
  2. Laden Sie das SHA-256 der Datei in das aktuelle Arbeitsverzeichnis herunter:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.8.sha256 > install_asm.sha256
    
  3. Prüfen Sie den Download, wenn beide Dateien im selben Verzeichnis sind:

    sha256sum -c --ignore-missing install_asm.sha256
    

    Wenn die Prüfung erfolgreich ist, gibt der Befehl Folgendes aus: install_asm: OK

    Aus Kompatibilitätsgründen enthält die Datei install_asm.sha256 die Prüfsumme zweimal, damit jede Version des Skripts in install_asm umbenannt werden kann. Wenn Sie die Fehlermeldung erhalten, dass --ignore-missing nicht vorhanden ist, führen Sie den vorherigen Befehl ohne das Flag --ignore-missing noch einmal aus.

  4. Machen Sie das Skript ausführbar:

    chmod +x install_asm
    

Nächste Schritte