Installation eines einzelnen Projekts in GKE

In dieser Anleitung wird erläutert, wie Sie die Anthos Service Mesh-Version 1.10.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 Skriptinstall_asm, das Ihr Projekt und Ihren Cluster konfiguriert und dann Anthos Service Mesh mithilfe von istioctl install installiert.

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

  • Neue Installationen von Anthos Service Mesh 1.10.6.

  • Führen Sie ein Upgrade von einer beliebigen Version aus und patchen Sie Version 1.7 oder höher auf Anthos Service Mesh 1.10.6. Upgrades von früheren Versionen werden nicht unterstützt.

  • Migration von Open-Source-Istio zu Anthos Service Mesh. Wenn Sie Istio 1.6 oder früher verwenden, müssen Sie zuerst ein Upgrade durchführen, bevor Sie zu Anthos Service Mesh migrieren. Wenn Sie Istio ab Version 1.7 verwenden, können Sie möglicherweise von Istio 1.7 oder höher zu Anthos Service Mesh und Mesh CA migrieren. Wenn Sie ein Upgrade ausführen müssen, rufen Sie die Seite Istio aktualisieren in der entsprechenden Version von Istio auf. Das Upgrade von Istio auf mehr als eine Nebenversion (z. B. 1.6.x auf 1.8.x) in einem Schritt wird nicht offiziell getestet oder empfohlen. 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

Anthos Service Mesh ist mit GKE Enterprise oder als eigenständiger Dienst verfügbar. Die Abrechnung erfolgt über Google APIs. Wenn Sie Anthos Service Mesh als eigenständigen Dienst verwenden möchten, aktivieren Sie die GKE Enterprise API nicht in Ihrem Projekt. Das Skript aktiviert alle anderen erforderlichen Google APIs für Sie. Informationen zu Anthos Service Mesh-Preisen finden Sie unter Preise.

  • 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.

  • Wenn Sie die GKE Enterprise API aktiviert haben, aber Anthos Service Mesh als eigenständigen Dienst verwenden möchten, deaktivieren Sie die GKE Enterprise API.

Voraussetzungen

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

    • Der GKE-Cluster muss Standard sein, da Autopilot-Cluster Webhook-Einschränkungen haben, die die MutatingWebhookConfiguration für istio-sidecar-injector nicht zulassen.

    • 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.10.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 die Webhooks verwendet werden, die für die automatische Sidecar-Einfügung und die Konfigurationsvalidierung verwendet werden. 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.

  • Wenn Sie die standardmäßigen Ressourcenlimits für den Sidecar-Container istio-proxy ändern möchten, müssen die neuen Werte größer als die Standardwerte sein, um Ereignisse aufgrund von Speicherplatzmangel zu vermeiden.

  • Für Windows Server-Arbeitslasten wird Istio nicht unterstützt. Wenn Ihr Cluster sowohl Linux- als auch Windows Server-Knotenpools hat, können Sie Anthos Service Mesh installieren und auf Ihren Linux-Arbeitslasten verwenden.

Steuerungsebene anpassen

Die von Anthos Service Mesh unterstützten Funktionen unterscheiden sich von Plattform zu Plattform. Wir empfehlen Ihnen, die unterstützten Features zu lesen, um zu erfahren, welche Features in GKE in Google Cloud unterstützt werden. Einige Funktionen sind standardmäßig aktiviert, andere können optional aktiviert werden. Erstellen Sie dazu eine IstioOperator-Konfigurationsdatei. Wenn Sie das Skript install_asm ausführen, können Sie die Option --custom_overlay mit der Overlay-Datei angeben.

Zertifizierungsstelle auswählen

Sowohl bei Neuinstallationen als auch bei Migrationen von Istio können Sie die Anthos Service Mesh-Zertifizierungsstelle (Mesh CA) oder Citadel von Istio als Zertifizierungsstelle (CA) für die Ausstellung gegenseitiger TLS (mTLS)-Zertifikate verwenden.

Sofern Sie keine benutzerdefinierte Zertifizierungsstelle wie HashiCorp Vault benötigen, empfehlen wir aus folgenden Gründen, Mesh CA zu verwenden:

  • 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.

Wenn Sie von Istio migrieren, können Sie entweder zu Mesh CA migrieren oder weiterhin die Istio-Zertifizierungsstelle verwenden. Für die Migration von der Istio-Zertifizierungsstelle zu Mesh CA ist es erforderlich, den Root of Trust zu migrieren. Sie haben bei der Migration zu Mesh CA die folgenden Optionen:

  • Planen Sie Ausfallzeiten für die Migration. Im Betrieb ist dies die einfachste Option. Da mTLS-Traffic jedoch während der Migration unterbrochen wird, müssen Sie Ausfallzeiten planen. Ein Beispiel für die Verwendung des Skripts in diesem Fall finden Sie unter Zu Mesh-CA mit Ausfallzeiten migrieren.

  • Verteilen Sie den neuen Root of Trust und migrieren Sie dann zu Mesh CA. Bei diesem Ansatz wird mTLS-Traffic nicht unterbrochen, sodass Sie keine Ausfallzeiten planen müssen. Der Migrationsprozess umfasst jedoch viele weitere Schritte. Weitere Informationen finden Sie unter Zu Mesh CA migrieren.

Wenn Sie bei der Migration zu Anthos Service Mesh weiterhin die Istio-Zertifizierungsstelle verwenden, wird der mTLS-Traffic nicht unterbrochen, da die Stammzertifizierungsstelle nicht geändert wurde. Obwohl dieser Migrationspfad Ihre vorhandenen Arbeitslasten nicht stört, sind Sie auf die Verwendung der Steuerungsebene im Cluster beschränkt. Die von Google verwaltete Steuerungsebene erfordert eine Mesh-Zertifizierungsstelle.

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.

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.10.6 in das aktuelle Arbeitsverzeichnis installiert wird:

    curl https://storage.googleapis.com/csm-artifacts/asm/install_asm_1.10 > install_asm
    
  2. Machen Sie das Skript ausführbar:

    chmod +x install_asm
    

Nächste Schritte