Einrichtung von Traffic Director vorbereiten

Das Einrichten von Traffic Director umfasst folgende Phasen:

  1. Berechtigungen gewähren und die Traffic Director API aktivieren
  2. Envoy-Sidecar-Proxys zusammen mit Ihren Anwendungen bereitstellen und die Proxys mit Traffic Director verbinden
  3. Traffic Director einrichten, damit Traffic Director die Datenebene konfigurieren kann

In diesem Dokument wird beschrieben, wie die erste Phase durchgeführt wird. Die zweite und dritte Phase umfasst plattformspezifische Anleitungen zu folgenden Themen:

Machen Sie sich mit der Traffic Director-Konzeptübersicht vertraut, bevor Sie diese Anleitung lesen.

Voraussetzungen

Unabhängig davon, ob Sie Traffic Director zum Konfigurieren von Envoy-Proxys verwenden, die zusammen mit Anwendungen auf virtuellen Maschinen, in Containern oder einer Mischung aus beidem ausgeführt werden, müssen Sie zuerst die folgenden Aufgaben ausführen:

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

Entscheiden, wie Envoy installiert werden soll

Sowohl für VM- als auch containerbasierte Arbeitslasten bietet Traffic Director automatisierte Envoy-Bereitstellungsmethoden zum Einrichten Ihres Service Mesh.

  • In Compute Engine können Sie eine VM-Vorlage verwenden, die automatisch eine unterstützte Version der Envoy-Binärdatei auf Ihren virtuellen Maschinen bereitstellt. Diese Envoy wird automatisch über Bootstrapping verknüpft, um eine Verbindung zu Traffic Director herzustellen.

  • In GKE können Sie einen Envoy-Sidecar-Injektor installieren, um Sidecar-Proxys automatisch neben neu erstellten Pods bereitzustellen und sie mit Traffic Director zu verbinden.

Wenn Sie Envoy manuell bereitstellen möchten, können Sie Envoy als Binärdatei (nur Compute Engine) oder als Container (Compute Engine oder GKE) bereitstellen. Sie müssen auch eine Envoy-Bootstrap-Konfigurationsdatei bereitstellen, um den Proxy mit Traffic Director zu verbinden und die Konfiguration zu erhalten. Weitere Informationen zum Bootstrapping finden Sie unter Envoy-Bootstrap-Attribute für Traffic Director konfigurieren.

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.

Bei automatischer Installation von Envoy

Prüfen Sie, ob die Cloud OS Config API aktiviert ist. Nur dann können Sie die erforderlichen Komponenten auf Ihren VMs installieren.

So gehen Sie dazu vor:

Console

  1. Rufen Sie in der Cloud Console "APIs & Dienste" auf.
    Zur Seite "API-Bibliothek"
  2. Wählen Sie das richtige Projekt aus.
  3. Geben Sie in das Suchfeld Cloud OS Config API ein und drücken Sie die Eingabetaste.
  4. Wählen Sie Cloud OS Config API aus.
  5. Klicken Sie auf Aktivieren.

gcloud

gcloud services enable osconfig.googleapis.com

Bei manueller Installation von Envoy

Traffic Director unterstützt Envoy ab Version 1.9.1. Wir empfehlen dringend, die neueste Envoy-Version zu verwenden, um zu gewährleisten, dass alle bekannten Sicherheitslücken beseitigt werden.

In der Anleitung Traffic Director-Einrichtung für Compute Engine-VMs mit manueller Envoy-Bereitstellung wird erläutert, wie Sie eine Envoy-Binärdatei aus einem Docker-Image abrufen. Wenn Sie sich für die manuellen Einrichtungsschritte in dieser Anleitung entscheiden, benötigen Sie Docker, um die Envoy-Proxy-Binärdatei zu entpacken. Sie benötigen außerdem Docker-Berechtigungen, um das Image aus Docker abzurufen. Wenn Sie die Docker-Tools als Nicht-Root-Nutzer ausführen, folgen Sie der Anleitung nach der Installation von Docker.

Erforderliche IAM-Berechtigungen gewähren

Sie müssen ausreichende Berechtigungen zum Erstellen von VM-Instanzen und zum Ändern eines Netzwerks haben, um Traffic Director zu konfigurieren. Wenn Sie die Rolle Projektinhaber oder Projektbearbeiter für das Projekt haben, in dem Sie Traffic Director aktivieren, haben Sie automatisch die erforderlichen Berechtigungen.

Andernfalls benötigen Sie die folgenden 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 (Identitäts- und Zugriffsverwaltung) für ein Dienstkonto festlegen Dienstkontoadministrator
Ressource für globale Weiterleitungsregel abrufen Compute-Netzwerkbetrachter
Traffic Director aktivieren Service Usage-Administrator
Netzwerke, Subnetze und Load-Balancer-Komponenten erstellen Netzwerkadministrator
Firewallregeln hinzufügen und löschen Sicherheitsadministrator
Instanzen erstellen Compute-Instanzadministrator

Darüber hinaus müssen die GKE-Knotenpools oder Compute Engine-VMs den Bereich https://www.googleapis.com/auth/cloud-platform haben.

Traffic Director API aktivieren

Console

  1. Rufen Sie in der Cloud Console "APIs & Dienste" für das Projekt auf.
    Zur Seite "API-Bibliothek"
  2. Verwenden Sie das Suchfeld, um die Traffic Director API zu finden. Wenn die Traffic Director API nicht angezeigt wird, haben Sie nicht die erforderlichen Berechtigungen zum Aktivieren der Traffic Director API.
  3. Klicken Sie auf die Traffic Director API.
  4. Klicken Sie auf der Seite mit den Informationen zur API auf Aktivieren.

gcloud

gcloud services enable trafficdirector.googleapis.com

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.

Bei einer Compute Engine-VM verwendet der xDS-Client das der VM zugewiesene Dienstkonto. Im Fall von GKE verwendet der xDS-Client das Dienstkonto, das dem zugrunde liegenden GKE-Knoten zugewiesen ist, wenn Workload Identity nicht aktiviert 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.

Das von Ihren xDS-Clients verwendete Dienstkonto muss die IAM-Berechtigung compute.globalForwardingRules.get auf Projektebene haben. Sie können diese Berechtigung auch erteilen, indem Sie dem Dienstkonto die Rolle compute.networkViewer zuweisen.

Console

  1. Öffnen Sie in der Cloud Console die Seite IAM & Verwaltung.

    Zur Seite "IAM & Verwaltung"

  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 bereits in der Mitgliederliste befindet, enthält es Rollen. Wählen Sie das Dienstkonto aus und klicken Sie auf den Tab Rollen.
  4. Klicken Sie für das Dienstkonto, das Sie bearbeiten möchten, auf die Schaltfläche Bearbeiten .

  5. Wählen Sie die Rolle Compute Engine > Compute-Netzwerkbetrachter aus.

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

gcloud

Ersetzen Sie die Variable ${SERVICE_ACCOUNT_EMAIL} durch den richtigen Wert.

PROJECT=`gcloud config get-value project`
gcloud projects add-iam-policy-binding ${PROJECT} \
   --member serviceAccount:${SERVICE_ACCOUNT_EMAIL} \
   --role roles/compute.networkViewer

Einrichtung fortsetzen

Nachdem Sie nun die vorher erforderlichen Schritte ausgeführt haben, können Sie Ihre Sidecar-Proxys bereitstellen und Traffic Director konfigurieren. Die folgenden Leitfäden enthalten plattformspezifische Anleitungen für Compute Engine und GKE:

Beachten Sie, dass diese Leitfäden sich zwar jeweils auf den Einsatz von Envoy-Sidecar-Proxys in einer einzigen Umgebung (entweder Compute Engine oder GKE) konzentrieren, Traffic Director jedoch flexibel ist und Bereitstellungen unterstützt, die sich über Umgebungen erstrecken.

Sie können Traffic Director mit dem Compute Engine-Load-Balancing-SDK oder mit REST APIs konfigurieren. Weitere Informationen finden Sie in den Load-Balancing API- und gcloud-Referenzen.