Einrichten von Traffic Director mit Envoy vorbereiten

Das Einrichten von Traffic Director 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 unabhängig davon, ob Sie die älteren APIs oder die neuen Dienstrouting-APIs verwenden, die sich in der Vorschau befinden. 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 Traffic Director-Übersicht vertraut, bevor Sie diese Anleitung lesen. Wenn Sie die neuen APIs verwenden, lesen Sie die Übersicht über neue Service Routing APIs.

Vorbereitung

Unabhängig davon, ob Sie Traffic Director 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 Traffic Director können Sie Envoy-Proxys ganz einfach 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 Traffic Director 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 Traffic Director verbindet und das Netzwerk Ihres Containers konfiguriert.

Schließlich können Sie auch Envoy-Bereitstellungslösungen von Drittanbietern mit Traffic Director 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 zum Arbeiten mit Traffic Director Version 1.9.1 oder höher sein. 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 Traffic Director 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 Traffic Director 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 Traffic Director ändern zu können. Wenn Sie die Rolle Projektinhaber oder Projektbearbeiter (roles/owner oder roles/editor) für das Projekt haben, in dem Sie Traffic Director 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)
Traffic Director aktivieren 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 in xDS v3 dem Dienstkonto, das von Traffic Director-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 Traffic Director in Compute Engine konfigurieren. Sie müssen die Cloud DNS API aktivieren und Cloud DNS für die DNS-Namensauflösung konfigurieren.

Hintergrundinformationen zur Traffic Director- und DNS-Auflösung finden Sie unter Traffic Director- 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 diese mit Traffic Director verbinden, werden Ihre xDS-Clients (z. B. Envoy-Proxys) mit dem xDS-Server trafficdirector.googleapis.com verbunden. 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 Traffic Director-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 Sonstige > Traffic Director-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.