Einrichtung des Cloud Service Mesh mit Envoy vorbereiten

Das Einrichten von Cloud Service Mesh umfasst die folgenden Phasen:

  1. Berechtigungen gewähren, die Traffic Director API aktivieren und Cloud DNS konfigurieren, wenn Sie Compute Engine verwenden.
  2. Anwendungen mit Envoy-Proxys bereitstellen
  3. Dienste und Routingregeln erstellen, die festlegen, wie Traffic durch Ihr Service Mesh geleitet wird

In diesem Dokument wird die erste Phase beschrieben. Sie gilt für die Verwendung der älteren APIs. Die zweite und dritte Phase werden in den plattformspezifischen Anleitungen behandelt, die im Abschnitt Einrichtung fortsetzen weiter unten in diesem Dokument aufgeführt sind.

Bevor Sie diese Anleitung lesen, machen Sie sich mit der Übersicht zu Cloud Service Mesh vertraut. Wenn Sie die Service Routing APIs verwenden, lesen Sie die Übersicht über Service Routing APIs.

Vorbereitung

Unabhängig davon, ob Sie Cloud Service Mesh zum Konfigurieren von Envoy-Proxys verwenden möchten, die neben Anwendungen auf VM-Instanzen, in Containern oder beidem ausgeführt werden, müssen Sie zuerst die folgenden Aufgaben ausführen:

  1. Aktivieren Sie die Abrechnung.
  2. Entscheiden, wie Sie Envoy installieren möchten
  3. Erforderliche Berechtigungen erteilen
  4. Traffic Director API für Ihr Projekt aktivieren
  5. Wenn Sie Compute Engine verwenden, aktivieren Sie die Cloud DNS API und konfigurieren Sie Cloud DNS.
  6. Prüfen, ob das von den Envoy-Proxys verwendete Dienstkonto ausreichende Berechtigungen für den Zugriff auf die Traffic Director API hat

Die folgenden Abschnitte enthalten Anleitungen für die einzelnen Aufgaben.

Abrechnung aktivieren

Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein. Weitere Informationen finden Sie unter Abrechnung für ein Projekt aktivieren, deaktivieren oder ändern.

Entscheiden, wie Envoy installiert werden soll

Mit Cloud Service Mesh können Sie Envoy-Proxys installieren und diese Infrastrukturebene verwalten:

  • In Compute Engine können Sie Envoy automatisch zu Anwendungen hinzufügen, die auf Ihren VMs ausgeführt werden. Sie verwenden eine VM-Vorlage, mit der Envoy installiert, mit Cloud Service Mesh verbunden und das Netzwerk Ihrer VM konfiguriert wird.

  • In Google Kubernetes Engine (GKE) können Sie den Pods Ihrer Dienste automatisch Envoy-Sidecar-Proxys hinzufügen. Sie installieren in Ihrem Cluster einen Envoy-Sidecar-Injektor, der Envoy-Sidecar-Proxys hinzufügt, sie mit Cloud Service Mesh verbindet und das Netzwerk Ihres Containers konfiguriert.

Schließlich können Sie auch Envoy-Bereitstellungslösungen von Drittanbietern mit Cloud Service Mesh verwenden. Ein Beispiel für ein solches Angebot ist GetEnvoy, das einen auf einem Paketmanager beruhenden Ansatz für die Installation und Aktualisierung Ihrer Envoy-Proxys bereitstellt.

Informationen zur Envoy-Versionsverwaltung

Envoy muss Version 1.9.1 oder höher haben, um mit Cloud Service Mesh zu funktionieren. Sie sollten immer die neueste Envoy-Version verwenden, um bekannte Sicherheitslücken zu minimieren.

Wenn Sie sich dafür entscheiden, Envoy mit einer unserer automatisierten Methoden bereitzustellen, erledigen wir diese Aufgabe für Sie so:

  • Wenn Sie eine automatisierte Envoy-Bereitstellung mit Compute Engine-VMs verwenden, wurde die installierte Envoy-Version für Cloud Service Mesh geprüft. Wenn eine neue VM mit der Instanzvorlage erstellt wird, erhält die VM die von uns validierte neueste Version. Wenn Sie eine VM mit langer Laufzeit haben, können Sie mit einem Rolling Update Ihre vorhandenen VMs ersetzen und die neueste Version abrufen.

  • Wenn Sie den Envoy-Sidecar-Injektor mit GKE verwenden, ist er so konfiguriert, dass er eine neuere Version von Envoy verwendet, die für Cloud Service Mesh geprüft wurde. Wenn ein Sidecar zusammen mit dem Arbeitslast-Pod eingefügt wird, erhält er diese Version von Envoy. Wenn Sie eine neuere Version von Envoy verwenden möchten, aktualisieren Sie den Envoy-Sidecar-Injektor.

Informationen zu bestimmten Envoy-Versionen finden Sie unter Versionsverlauf. Informationen zu Sicherheitslücken finden Sie unter Sicherheitshinweise.

Erforderliche IAM-Berechtigungen gewähren

Sie müssen ausreichende IAM-Berechtigungen (Identity and Access Management) haben, um VM-Instanzen zu erstellen und ein Netzwerk zu ändern, um Cloud Service Mesh zu konfigurieren. Wenn Sie die Rolle Projektinhaber oder -bearbeiter (roles/owner oder roles/editor) in dem Projekt haben, in dem Sie Cloud Service Mesh aktivieren, haben Sie automatisch die erforderlichen Berechtigungen.

Andernfalls benötigen Sie alle in der folgenden Tabelle aufgeführten Compute Engine-IAM-Rollen. Mit diesen Rollen haben Sie auch über die zugehörigen Berechtigungen, wie in der Compute Engine IAM-Dokumentation beschrieben.

Aufgabe Erforderliche Rolle
IAM-Richtlinie für ein Dienstkonto festlegen Dienstkontoadministrator
(roles/iam.serviceAccountAdmin)
Aktivieren Sie Cloud Service Mesh. Service Usage-Administrator
(roles/serviceusage.serviceUsageAdmin)
Netzwerke, Subnetze und Load-Balancer-Komponenten erstellen Compute-Netzwerkadministrator
(roles/compute.networkAdmin)
Firewallregeln hinzufügen und löschen Compute-Sicherheitsadministrator
(roles/compute.securityAdmin)
Instanzen erstellen Compute-Instanzadministrator
(roles/compute.instanceAdmin)

Der GKE-Knotenpool oder die Compute Engine-VMs müssen den Bereich https://www.googleapis.com/auth/cloud-platform haben. Weitere Informationen finden Sie unter Fehlerbehebung bei Bereitstellungen, die Envoy verwenden.

Gewähren Sie mit xDS v3 dem Dienstkonto, das von Cloud Service Mesh Envoy-Clients verwendet wird, die Rolle roles/trafficdirector.client.

Traffic Director API aktivieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite API-Bibliothek für Ihr Projekt auf.

    Zur API-Bibliothek

  2. Geben Sie im Feld Nach APIs und Diensten suchen Traffic Director ein.

  3. Klicken Sie in der Liste der Suchergebnisse auf Traffic Director API. Wenn die Traffic Director API nicht angezeigt wird, haben Sie nicht die erforderlichen Berechtigungen, um die Traffic Director API zu aktivieren.

  4. Klicken Sie auf der Seite Traffic Director API auf Aktivieren.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud services enable trafficdirector.googleapis.com

Cloud DNS API aktivieren und Cloud DNS konfigurieren

Folgen Sie dieser Anleitung, wenn Sie Cloud Service Mesh in Compute Engine konfigurieren. Sie müssen die Cloud DNS API aktivieren und Cloud DNS für die DNS-Namensauflösung konfigurieren.

Hintergrundinformationen zu Cloud Service Mesh und DNS-Auflösung finden Sie unter Cloud Service Mesh und DNS-Namensauflösung.

Verwenden Sie zuerst die folgende Anleitung, um die Cloud DNS API zu aktivieren.

Console

  1. Rufen Sie in der Google Cloud Console die Seite API-Bibliothek für Ihr Projekt auf.

    Zur API-Bibliothek

  2. Geben Sie im Feld Nach APIs und Diensten suchen DNS ein.

  3. Klicken Sie in der Liste der Suchergebnisse auf Cloud DNS API. Wenn die Cloud DNS API nicht aufgeführt ist, haben Sie nicht die erforderlichen Berechtigungen zum Aktivieren der Cloud DNS API.

  4. Klicken Sie auf der Seite Cloud DNS API auf Aktivieren.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud services enable dns.googleapis.com

Konfigurieren Sie als Nächstes eine von Cloud DNS verwaltete private Zone. Folgen Sie der Anleitung unter Private Zone erstellen.

Dienstkonto für den Zugriff auf Traffic Director API aktivieren

Wenn Sie die Datenebene einrichten und mit Cloud Service Mesh verbinden, stellen Ihre xDS-Clients (z. B. Envoy-Proxys) eine Verbindung zum xDS-Server trafficdirector.googleapis.com her. Diese xDS-Clients dienen dem xDS-Server als Dienstkontoidentität, um die ordnungsgemäße Kommunikation zwischen der Datenebene und der Steuerungsebene zu gewährleisten.

  • Für eine Compute Engine-VM verwendet der xDS-Client das der VM zugewiesene Dienstkonto.
  • Wenn Workload Identity in GKE nicht aktiviert ist, verwendet der xDS-Client das Dienstkonto, das dem zugrunde liegenden GKE-Knoten zugewiesen ist.
  • Wenn Workload Identity aktiviert ist, verwendet der xDS-Client das Google-Dienstkonto, das an das Kubernetes-Dienstkonto gebunden ist, das dem Pod zugewiesen ist.

Sie benötigen die folgenden Berechtigungen, je nach Version des xDS-Clients, den Sie zum Konfigurieren von Envoy verwenden. Es wird dringend empfohlen, dass Sie Ihre neuen Envoy-Bereitstellungen mit xDS v3 konfigurieren oder zu xDS v3 migrieren, wenn Sie bereits eine Bereitstellung haben, die xDS v2 verwendet.

  • Wenn Sie xDS v3 verwenden, muss das von Ihren Clients verwendete Dienstkonto die Berechtigungen trafficdirector.networks.reportMetrics und trafficdirector.networks.getConfigs haben. Sie können die IAM-Rolle Cloud Service Mesh Client (roles/trafficdirector.client) verwenden, die beide Berechtigungen umfasst.

  • Wenn Sie xDS v2 verwenden, muss das von Ihren Clients verwendete Dienstkonto die IAM-Berechtigung compute.globalForwardingRules.get auf Projektebene haben. Sie können diese Berechtigung auch erteilen, indem Sie dem Dienstkonto die Rolle Compute-Netzwerkbetrachter“ (roles/compute.networkViewer) zuweisen.

Console

  1. Wechseln Sie in der Google Cloud Console zur Seite IAM & Verwaltung:

    IAM & Verwaltung aufrufen

  2. Wählen Sie Ihr Projekt aus.

  3. Bestimmen Sie das Dienstkonto, dem Sie eine Rolle hinzufügen möchten:

    • Wenn sich das Dienstkonto nicht schon in der Mitgliederliste befindet, sind ihm keine Rollen zugewiesen. Klicken Sie auf Hinzufügen und geben Sie die E-Mail-Adresse des Dienstkontos ein.
    • Wenn sich das Dienstkonto in der Mitgliederliste befindet, sind ihm bereits Rollen zugewiesen. Wählen Sie das Dienstkonto aus und klicken Sie auf den Tab Rollen.
  4. Erweitern Sie die Rolle. Klicken Sie für das Dienstkonto, das Sie bearbeiten möchten, auf Bearbeiten.

  5. Wählen Sie die Rolle Anderer > Cloud Service Mesh-Client aus.

  6. Klicken Sie zum Anwenden der Rolle auf das Dienstkonto auf Speichern.

gcloud

Führen Sie dazu diesen Befehl aus:

gcloud projects add-iam-policy-binding PROJECT \
    --member serviceAccount:SERVICE_ACCOUNT_EMAIL \
    --role=roles/trafficdirector.client

Ersetzen Sie Folgendes:

  • PROJECT: geben Sie gcloud config get-value project ein
  • SERVICE_ACCOUNT_EMAIL ist die mit dem Dienstkonto verknüpfte E-Mail-Adresse

Einrichtung fortsetzen

Nachdem Sie nun die erforderlichen Schritte ausgeführt haben, können Sie mit der Einrichtung Ihres Service Mesh beginnen.