Einrichten von Traffic Director mit proxylosen gRPC-Diensten vorbereiten

Dieser Leitfaden enthält eine Anleitung zur Vorbereitung der Traffic Director-Konfiguration mit proxylosen gRPC-Anwendungen.

Vorbereitung

Machen Sie sich mit den allgemeinen Traffic Director-Konzepten vertraut. Lesen Sie die folgenden Dokumente:

Diese Dokumente bieten eine Übersicht über die Verwendung von Traffic Director mit proxylosen gRPC-Anwendungen.

Allgemeine Vorbereitung

Bereiten Sie zuerst Ihre Umgebung vor. Führen Sie dazu die in den folgenden Abschnitten beschriebenen Aufgaben aus.

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.

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

Außerdem müssen die 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 die Traffic Director API aktivieren

Wenn Sie die Datenebene einrichten und mit Traffic Director verbinden, stellen Ihre xDS-Clients 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.

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

Führen Sie als Nächstes die folgenden Schritte aus, um proxylose gRPC-Anwendungen in einem Mesh-Netzwerk einzurichten:

  1. Aktualisieren Sie Ihre gRPC-Clients mit der neuesten Version von gRPC mit dem neuesten Patch.
  2. Aktualisieren Sie den gRPC-Name-Resolver Ihrer Clients, wenn Sie einen Kanal erstellen, und geben Sie eine Bootstrap-Datei für Traffic Director an.
  3. Konfigurieren Sie Traffic Director- und Cloud Load Balancing-Ressourcen.

Dieser Leitfaden enthält Informationen zum Ausführen der ersten beiden Schritte. Der Konfigurationsprozess, den Sie für Schritt 3 verwenden, hängt davon ab, ob Ihre Bereitstellung Compute Engine-VMs oder Google Kubernetes Engine-NEGs verwendet.

Unterstützte gRPC-Versionen und -Sprachen

gRPC ist ein Open-Source-Projekt. Die Releaseunterstützung ist hier beschrieben. Es wird dringend empfohlen, die neueste gRPC-Version zu verwenden, um sicherzustellen, dass bekannte Sicherheitslücken abgemildert werden. Das gewährleistet auch, dass Ihre Anwendungen Zugriff auf die neuesten von Traffic Director unterstützten Funktionen haben. Die in verschiedenen Implementierungen und Versionen von gRPC unterstützten Service Mesh-Features werden hier aufgelistet. gRPC-Sprachen und -Funktionen, die mit Traffic Director und proxylosen gRPC-Diensten unterstützt werden, sind hier aufgelistet.

Traffic Director sorgt für die Kompatibilität mit aktuellen und unterstützten gRPC-Versionen und -Entwicklungen, um mit gRPC-Versionen kompatibel zu sein, die weniger als ein Jahr alt sind, gemäß den Nutzungsbedingungen der Google Cloud Platform.

gRPC-Clients aktualisieren

Zuerst müssen Sie die gRPC-Bibliothek in Ihrer Anwendung auf die Version aktualisieren, die die von Ihnen benötigten Funktionen unterstützt. Weitere Informationen finden Sie im vorherigen Abschnitt. Fügen Sie den xDS-Name-Resolver als Abhängigkeit zu Ihren gRPC-Anwendungen hinzu. Die Anforderungen pro Sprache für Java und Go werden weiter unten aufgeführt. Für andere Sprachen gelten keine zusätzlichen Anforderungen.

Java-Anforderungen

Wenn Sie in Java Gradle verwenden, fügen Sie das Snapshot-Repository und die grpc-xds-Abhängigkeit in Ihre build.gradle-Datei ein: Ersetzen Sie die unten gezeigte Version durch die neueste gRPC-Version.

repositories {
    mavenLocal()
}
dependencies {
  runtimeOnly 'io.grpc:grpc-xds:1.30.0-SNAPSHOT'
}

Wenn Sie Maven verwenden, fügen Sie Folgendes in den Abschnitt <dependencies> der Datei pom.xml ein: Ersetzen Sie die unten gezeigte Version durch die neueste gRPC-Version.

    <dependency>
      <groupId>io.grpc</groupId>
      <artifactId>grpc-xds</artifactId>
      <version>1.30.0-SNAPSHOT</version>
      <scope>runtime</scope>
    </dependency>

Go-Anforderungen

Wenn Sie Go verwenden, müssen Sie das xds-Go-Paket importieren.

Der gRPC-Name-Resolver muss xds sein.

Sie müssen Ihre gRPC-Anwendungen so einrichten oder ändern, dass das Schema zur Namensauflösung xds im Ziel-URI anstelle von DNS oder einem anderen Resolver-Schema verwendet wird. Verwenden Sie dazu das Präfix xds:/// im Zielnamen, wenn Sie einen gRPC-Kanal erstellen. Das Load-Balancing für gRPC-Clients erfolgt pro Kanal.

Außerdem müssen Sie den Dienstnamen, der im Ziel-URI verwendet wird, in die Traffic Director-Konfiguration einfügen. In Java erstellen Sie den Kanal beispielsweise mit dieser Struktur, in der der Dienstname helloworld lautet:

ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")

Bootstrap-Datei

Das Resolver-Schema xds weist die gRPC-Anwendung an, eine Verbindung zu Traffic Director herzustellen, um Konfigurationsinformationen für den Zieldienst abzurufen. Gehen Sie daher folgendermaßen vor:

  • Erstellen Sie eine Bootstrap-Datei (siehe unten). Diese Datei weist gRPC an, eine Verbindung zu einem xDS-Server (Traffic Director) herzustellen, um die Konfiguration für bestimmte Dienste abzurufen.
  • Definieren Sie eine Umgebungsvariable namens GRPC_XDS_BOOTSTRAP, wobei der Bootstrap-Dateiname als Wert der Umgebungsvariable dient.

Die Einrichtungsanleitung enthält Beispiele zum Generieren der Bootstrap-Datei.

Zusätzlich zur Anwendung muss eine Bootstrap-Datei mit den erforderlichen Informationen für die Verbindung mit Traffic Director vorhanden sein. Hier ein Beispiel für eine Bootstrap-Datei:

{
  "xds_servers": [
    {
      "server_uri": "trafficdirector.googleapis.com:443",
      "channel_creds": [
        {
          "type": "google_default"
        }
      ]
    }
  ],
  "node": {
    "id": "b7f9c818-fb46-43ca-8662-d3bdbcf7ec18~10.0.0.1",
    "metadata": {
      "TRAFFICDIRECTOR_GCP_PROJECT_NUMBER": "123456789012",
      "TRAFFICDIRECTOR_NETWORK_NAME": "default"
    },
    "locality": {
      "zone": "us-central1-a"
    }
  }
}

In der folgenden Tabelle werden die Felder in der Bootstrap-Datei erläutert.

Feld Wert und Beschreibung
xds_servers Eine Liste mit xDS-Servern. gRPC verwendet nur den ersten Server in der Liste.
server_uri Geben Sie mindestens einen Server an. gRPC versucht, nur eine Verbindung zum ersten xDS-Server in der Liste „xds_servers“ herzustellen. Der Standardwert ist trafficdirector.googleapis.com:443.
channel_creds Anmeldedaten zur Verwendung mit dem xDS-Server.
type Verwenden Sie den Wert google_default. Weitere Informationen zum Abrufen von Anmeldedaten finden Sie unter Erste Schritte: Authentifizierung.
node Informationen zu dem Client, der eine Verbindung zum xDS-Server herstellt.
id Geben Sie im Feld id einen eindeutigen String an. Dies vereinfacht die Identifizierung des gRPC-Clients, der eine Verbindung zu Traffic Director herstellt.
metadata Spezifische Informationen für den xDS-Server.
TRAFFICDIRECTOR_GCP_PROJECT_NUMBER Die Projektnummer, in der Traffic Director ausgeführt wird.
TRAFFICDIRECTOR_NETWORK_NAME Ist das Feld leer oder nicht angegeben, wird der Wert auf default gesetzt.
locality Die GCP-Zone, in der der gRPC-Client ausgeführt wird.

Weitere Informationen

Nachdem Sie die in diesem Dokument beschriebene Vorbereitung abgeschlossen haben, fahren Sie mit den Anleitungen in einem der folgenden Dokumente fort: