Cloud Service Mesh mit Envoy einrichten

Die Einrichtung 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. Es gilt, wenn Sie die älteren APIs verwenden. Die zweite und dritte Phase umfasst die plattformspezifischen Anleitungen, die weiter unten in diesem Dokument unter Einrichtungsprozess fortsetzen aufgeführt werden.

Machen Sie sich mit der Cloud Service Mesh-Übersicht vertraut, bevor Sie diese Anleitung lesen. Wenn Sie die Dienstrouting-APIs verwenden, lesen Sie die Übersicht über Dienstrouting-APIs.

Vorbereitung

Unabhängig davon, ob Sie Cloud Service Mesh zum Konfigurieren von Envoy-Proxys verwenden, die zusammen mit Anwendungen auf VM-Instanzen, in Containern oder einer Mischung aus 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, die Envoy installiert, eine Verbindung zu Cloud Service Mesh herstellt und das Netzwerk Ihrer VM konfiguriert.

  • In Google Kubernetes Engine (GKE) können Sie den Pods Ihrer Dienste automatisch Envoy-Sidecar-Proxys hinzufügen. Sie installieren einen Envoy-Sidecar-Injektor in Ihrem Cluster, 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 sein, 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 die automatisierte Envoy-Bereitstellung mit Compute Engine-VMs verwenden, wird die Envoy-Version installiert, die für die Arbeit mit Cloud Service Mesh validiert wurde. 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 der Injektor so konfiguriert, dass er eine neue Version von Envoy verwendet, die wir für die Zusammenarbeit mit Cloud Service Mesh validieren. 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 erstellen und ein Netzwerk zum Konfigurieren von Cloud Service Mesh ändern zu können. Wenn Sie die Rolle Projektinhaber oder Projektbearbeiter (roles/owner oder roles/editor) für das 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.

Weisen Sie dem Dienstkonto, das von Cloud Service Mesh Envoy-Clients verwendet wird, die Rolle roles/trafficdirector.client zu.

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 der 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: Nur xDS v3 wird unterstützt. Wenn Sie xDS v2 verwenden, müssen Sie zu xDS v3 migrieren. Informationen zur Migration finden Sie unter Von xDS v2 zu xDS v3 migrieren.

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.

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

Dabei gilt:

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