Einrichten von Traffic Director mit proxylosen gRPC-Diensten vorbereiten
Das Einrichten von Traffic Director umfasst mehrere Phasen. Dieses Dokument beschreibt die erste Phase: eine Anleitung zur Vorbereitung der Traffic Director-Konfiguration mit proxylosen gRPC-Anwendungen. Dieses Dokument gilt unabhängig davon, ob Sie die älteren APIs oder die neuen Dienstrouting-APIs verwenden, die sich in der Vorschau befinden. Die anderen Phasen werden durch die plattformspezifischen Anleitungen behandelt, die weiter unten in diesem Dokument unter Einrichtungsprozess fortsetzen aufgeführt werden.
Bevor Sie diesen Leitfaden lesen, machen Sie sich mit den folgenden Dokumenten vertraut, die eine Übersicht über die Verwendung von Traffic Director mit proxylosen gRPC-Anwendungen bieten:
- Übersicht über Traffic Director
- Übersicht über Traffic Director mit proxylosen gRPC-Diensten
- Neue Service Routing APIs für Traffic Director
Vorbereitung
Führen Sie die folgenden Schritte aus, um Ihre Umgebung vorzubereiten:
- Aktivieren Sie die Abrechnung.
- Erforderliche Berechtigungen erteilen
- Traffic Director API für Ihr Projekt aktivieren
- Sicherstellen, dass das Dienstkonto über ausreichende Berechtigungen für den Zugriff auf die Traffic Director API verfügt
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.
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 IAM-Rollen, die in der folgenden Tabelle aufgeführt sind. 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 ) |
Ressource für globale Weiterleitungsregel abrufen | Compute-Netzwerkbetrachter
( roles/compute.networkViewer ) |
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 ) |
GKE-Cluster erstellen und ändern, wenn Pods verwendet werden | Clusteradministrator
( roles/container.clusterAdmin ) |
Gewährt Zugriff auf Dienstkonten | Dienstkontonutzer
( roles/iam.serviceAccountUser |
Außerdem müssen die Compute Engine-VMs den Bereich https://www.googleapis.com/auth/cloud-platform
haben. Weitere Informationen finden Sie unter Fehlerbehebung bei Bereitstellungen, die proxylose gRPC-Dienste verwenden.
Traffic Director API aktivieren
Console
Rufen Sie in der Google Cloud Console die Seite API-Bibliothek für Ihr Projekt auf.
Geben Sie im Feld Nach APIs und Diensten suchen
Traffic Director
ein.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.
Klicken Sie auf der Seite Traffic Director API auf Aktivieren.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud services enable trafficdirector.googleapis.com
Dienstkonto für den Zugriff auf 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.
Sie benötigen je nach Version des xDS-Protokolls, das Ihre gRPC-Anwendung nutzt, die folgenden Berechtigungen. Die xDS-Protokollversion wird in der Bootstrap-Datei angegeben. Wir empfehlen Ihnen, Ihre Anwendung mit xDS v3 zu konfigurieren oder zu xDS v3 zu migrieren, wenn Sie eine bestehende Bereitstellung haben, die xDS v2 verwendet. Darüber hinaus erfordern die neuen Service Routing APIs xDS v3.
Wenn Sie xDS v3 verwenden, muss das von Ihren gRPC-Anwendungen verwendete Dienstkonto die Berechtigungen
trafficdirector.networks.reportMetrics
undtrafficdirector.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 gRPC-Anwendungen 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
Wechseln Sie in der Google Cloud Console zur Seite IAM & Verwaltung:
Wählen Sie Ihr Projekt aus.
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.
Erweitern Sie die Rolle. Klicken Sie für das Dienstkonto, das Sie bearbeiten möchten, auf
Bearbeiten.Wählen Sie die Rolle Sonstige > Traffic Director-Client aus.
Klicken Sie zum Anwenden der Rolle auf das Dienstkonto auf Speichern.
gcloud
Führen Sie den folgenden Befehl aus:
gcloud projects add-iam-policy-binding PROJECT \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL \ --role=roles/trafficdirector.client
Dabei gilt:
PROJECT
: geben Siegcloud config get-value project
einSERVICE_ACCOUNT_EMAIL
ist die mit dem Dienstkonto verknüpfte E-Mail-Adresse
Führen Sie als Nächstes die folgenden Schritte aus, um proxylose gRPC-Anwendungen in einem Service Mesh-Netzwerk einzurichten:
- Aktualisieren Sie Ihre gRPC-Clients mit der neuesten Version von gRPC mit dem neuesten Patch.
- Aktualisieren Sie den gRPC-Name-Resolver Ihrer Clients, wenn Sie einen Kanal erstellen, und geben Sie eine Bootstrap-Datei für Traffic Director an.
- Konfigurieren Sie Traffic Director- und Cloud Load Balancing-Ressourcen.
Dieses Dokument 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 BereitstellungCompute Engine-VMs oderGKE-Netzwerk-Endpunktgruppen (NEG) nutzt.
Unterstützte gRPC-Versionen und -Sprachen
gRPC ist ein Open-Source-Projekt. Die zugehörige Unterstützung wird in den FAQ zu gRPC beschrieben. Es empfiehlt sich, die neueste Version von gRPC zu verwenden, um sicherzustellen, dass bekannte Sicherheitslücken beseitigt 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 Funktionen des Service Mesh sind auf GitHub aufgeführt. Eine Liste der gRPC-Sprachen und -Funktionen, die von Traffic Director und proxylosen gRPC-Diensten unterstützt werden, finden Sie unter Traffic Director-Features.
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
Aktualisieren Sie die gRPC-Bibliothek in Ihrer Anwendung auf die Version, die die von Ihnen benötigten Features 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 in den folgenden Abschnitten erläutert. Für andere Sprachen gelten keine zusätzlichen Anforderungen.
Java-Anforderungen
Wenn Sie Gradle in Java verwenden, fügen Sie der Datei build.gradle
die Abhängigkeit grpc-xds
hinzu. Ersetzen Sie LATEST_GRPC_VERSION
durch die neueste Version von gRPC.
dependencies { runtimeOnly 'io.grpc:grpc-xds:LATEST_GRPC_VERSION' }
Wenn Sie Maven verwenden, fügen Sie Folgendes in den Abschnitt <dependencies>
der Datei pom.xml ein: Ersetzen Sie LATEST_GRPC_VERSION
durch die neueste Version von gRPC.
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-xds</artifactId> <version>LATEST_GRPC_VERSION</version> <scope>runtime</scope> </dependency>
Go-Anforderungen
Wenn Sie Go verwenden, importieren Sie das xds-Go-Paket.
gRPC-Namens-Resolver für die Verwendung von xds
festlegen
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.
Fügen Sie den Dienstnamen, der im Ziel-URI verwendet wird, in die Traffic Director-Konfiguration ein. In Java erstellen Sie den Kanal beispielsweise mit dieser Struktur, in der der Dienstname helloworld
lautet:
ManagedChannelBuilder.forTarget("xds:///helloworld[:PORT_NUMBER]")
Bootstrap-Datei erstellen und konfigurieren
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, wie im folgenden Beispiel gezeigt. 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. Der Einfachheit halber können Sie die neueste Version des gRPC-Bootstrap-Generators von Traffic Director verwenden.
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" } ], "server_features": ["xds_v3"] } ], "node": { "id": "projects/123456789012/networks/default/nodes/b7f9c818-fb46-43ca-8662-d3bdbcf7ec18", "metadata": { "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 eine URL an. gRPC versucht, nur eine Verbindung zum ersten xDS-Server in der Liste von 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 bei der Authentifizierung. |
server_features |
Eine Liste der vom Server unterstützten Funktionen, z. B. xDS v3-Unterstützung. In der Standardeinstellung ist dieser Wert leer. |
node |
Informationen zu dem Client, der eine Verbindung zum xDS-Server herstellt. |
id |
projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID Geben Sie einen eindeutigen String als Wert für |
metadata |
Spezifische Informationen für den xDS-Server |
TRAFFICDIRECTOR_NETWORK_NAME |
Ist das Feld leer oder nicht angegeben, wird der Wert auf default gesetzt. |
locality |
Die Google Cloud-Zone, in der der gRPC-Client ausgeführt wird. |
Einrichtung fortsetzen
Nachdem Sie die in diesem Dokument beschriebenen Voraussetzungen erfüllt haben, fahren Sie mit den Anleitungen in einem der folgenden Dokumente fort:
- Compute Engine-VMs und proxyfreie gRPC-Dienste einrichten
- GKE- und Proxy-freie gRPC-Dienste einrichten
- Wenn Sie Traffic Director mit den neuen Service Routing APIs bereitstellen, die sich in der Vorschau befinden, lesen Sie die Einrichtungsanleitungen für das Traffic Director-Dienstrouting.