Installation mehrerer Projekte in GKE

In dieser Anleitung wird beschrieben, wie Sie Anthos Service Mesh für ein Mesh-Netzwerk mit mehreren Google Kubernetes Engine-Clustern (GKE) installieren, die sich in verschiedenen Google Cloud-Projekten befinden.

Sie können diese Anleitung für folgende Einrichtungs-Anwendungsfälle verwenden:

  • Neue Installationen von Anthos Service Mesh 1.9.8.

  • Upgrade von 1.8 or a 1.9 patch release auf Anthos Service Mesh 1.9.8 durchführen Upgrades von früheren Versionen werden nicht unterstützt.

  • Migration von Open-Source-Istio 1.8 or 1.9 zu Anthos Service Mesh 1.9.8. Wenn Sie über eine frühere Version von Istio verfügen, müssen Sie vor der Migration zu Anthos Service Mesh ein Upgrade ausführen. Wenn Sie ein Upgrade ausführen müssen, rufen Sie die Seite Istio aktualisieren in der entsprechenden Version von Istio auf. Ein Upgrade von Istio auf mehr als eine Nebenversion (z. B. 1.6.x auf 1.8.x) in einem Schritt wurde nicht offiziell getestet oder empfohlen. Lesen Sie den Artikel Migration von Istio vorbereiten, um die Migration zu planen.

Nicht alle Features sind für Service Mesh mit Clustern in verschiedenen Projekten verfügbar. Insbesondere sind die Anthos Service Mesh-Dashboards in der Google Cloud Console derzeit nicht verfügbar. Sie können sich aber für jedes Projekt Logs in Cloud Logging und Messwerte in Cloud Monitoring ansehen.

Hinweise

In diesem Leitfaden wird Folgendes vorausgesetzt:

Wenn Sie von Istio migrieren, lesen Sie den Abschnitt Migration von Istio vorbereiten.

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

  • Da sich Ihre Cluster in verschiedenen Projekten befinden, müssen sie in einer freigegebenen Virtual Private Cloud (VPC) sein. Informationen zum Konfigurieren Ihrer Cluster finden Sie unter Cluster mit freigegebener VPC einrichten.

  • 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. Wenn der Maschinentyp acht vCPUs umfasst, benötigt der Cluster nur einen Knoten. Informationen zum Hinzufügen von Knoten finden Sie unter Größe eines Clusters anpassen.

    • Zur Vorbereitung Ihres Clusters vor der Installation von Anthos Service Mesh aktivieren Sie Workload Identity. 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.

    • Es wird empfohlen, den Cluster in einer Release-Version zu registrieren. 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.9.8. 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.

  • 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 senken möchten, sollten Sie mit neuen Limits genügend Arbeitsspeicher haben, um Ereignisse aufgrund von Speicherplatzmangel zu vermeiden.

Zertifizierungsstelle auswählen

Bei Neuinstallationen und Migrationen haben Sie die Option, die Anthos Service Mesh-Zertifizierungsstelle (Mesh CA) oder Istio CA (früher als Citadel bekannt) 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.

Es gibt jedoch Fälle, in denen Sie Istio-CA verwenden können, wie die folgenden:

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

    Wenn Sie Istio CA 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 einplanen, da sich der Root of Trust von Istio CA 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

Obwohl es derzeit nicht erforderlich ist, empfehlen wir die Registrierung Ihres Clusters in der Flotte Ihres Projekts, die bisher als Environ bezeichnet wurde. Mit einer Flotte können Sie Cluster organisieren, um die Verwaltung mehrerer Cluster zu vereinfachen. Wenn Sie Ihre Cluster in einer Flotte registrieren, können Sie Dienste und andere Infrastruktur nach Bedarf gruppieren, um einheitliche Richtlinien anzuwenden. Wenn Sie Cluster in verschiedenen Projekten haben, müssen Sie die Cluster beim Flotten-Hostprojekt statt bei dem Projekt registrieren, in dem der Cluster erstellt wurde. Weitere Informationen zum Registrieren Ihres Clusters finden Sie unter Cluster in der Flotte registrieren.

Das Konzept eines Flotten-Hostprojekts ist wichtig, wenn Sie Ihren Cluster einrichten, um die von Anthos Service Mesh benötigten Optionen zu aktivieren. Das Service Mesh für Ihren Cluster wird mit einem Wert identifiziert, der auf einer Projektnummer basiert. Wenn Sie Cluster aus verschiedenen Projekten einrichten, müssen Sie die Projektnummer für das Flotten-Hostprojekt verwenden.