Vorbereitung für die Einrichtung von Dienstrouting-APIs mit Envoy und proxylosen Arbeitslasten
Dieses Dokument enthält Informationen zu den erforderlichen Aufgaben für die Einrichtung von Cloud Service Mesh mit den Dienstrouting-APIs und Envoy-Proxys oder mit proxylosen gRPC-Diensten als Datenebene.
Die Einrichtung von Cloud Service Mesh umfasst mehrere Phasen. Dieses Dokument beschreibt die erste Phase: eine Anleitung zur Vorbereitung der Cloud Service Mesh-Konfiguration mit VM-Instanzen oder proxylosen gRPC-Anwendungen. 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 Cloud Service Mesh mit den Dienstrouting-APIs und Gateway-APIs bieten:
Vorbereitung
Führen Sie die folgenden Schritte aus, um Ihre Umgebung vorzubereiten:
- Richten Sie Projekte nach Ihren geschäftlichen Anforderungen ein.
- Aktivieren Sie die Abrechnung.
- Erforderliche Berechtigungen erteilen
- Aktivieren Sie die Traffic Director API und andere APIs für Ihr Projekt.
- Prüfen Sie, ob das Dienstkonto ausreichende Berechtigungen für den Zugriff auf die Traffic Director API hat.
- Aktivieren Sie die Cloud DNS API und konfigurieren Sie Cloud DNS.
Die folgenden Abschnitte enthalten Anleitungen für die einzelnen Aufgaben.
Projekte einrichten
Informationen zum Einrichten und Verwalten Ihrer Projekte finden Sie unter Projekte erstellen und verwalten und in der zugehörigen Dokumentation.
Abrechnung aktivieren
Die Abrechnung für Ihr 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 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 müssen Sie alle in der folgenden Tabelle aufgeführten IAM-Rollen haben. 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) |
| Cloud Service Mesh 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) |
| Gewährt Zugriff auf Dienstkonten | Service Account User
( roles/iam.serviceAccountUser) |
| Aktivieren Sie das Dienstkonto, um die erforderlichen Aufgaben auszuführen. | Service Account User
( roles.trafficdirector.client) |
Die Compute Engine-VMs müssen den
https://www.googleapis.com/auth/cloud-platform
Bereich haben. Weitere Informationen finden Sie unter
Fehlerbehebung bei Bereitstellungen, die proxylose gRPC-Dienste verwenden.
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, unabhängig davon, ob es sich um Envoy-Proxys oder proxylose gRPC-Clients handelt, eine Verbindung zum trafficdirector.googleapis.com-xDS-Server 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.
Sofern Sie die Konfiguration nicht ändern, Google Cloud verwendet die das Standarddienstkonto für Compute Engine.
Folgen Sie der Anleitung, um dem Dienstkonto Zugriff auf die Traffic Director API zu gewähren.
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 dazu diesen 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 projecteinSERVICE_ACCOUNT_EMAIL: ist die mit dem Dienstkonto verknüpfte E-Mail-Adresse
Erforderliche APIs aktivieren
Aktivieren Sie die folgenden erforderlichen APIs.
- osconfig.googleapis.com
- trafficdirector.googleapis.com
- compute.googleapis.com
- networkservices.googleapis.com
Folgen Sie der Anleitung, um die erforderlichen APIs zu aktivieren.
Console
Rufen Sie in der Google Cloud Console die API-Bibliothek Seite für Ihr Projekt auf.
Geben Sie im Feld Nach APIs und Diensten suchen
Traffic Directorein.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.
Geben Sie im Feld Nach APIs und Diensten suchen
OS Configein.Klicken Sie in der Liste der Suchergebnisse auf OS Config. Wenn die OS Config API nicht angezeigt wird, haben Sie nicht die erforderlichen Berechtigungen, um die Traffic Director API zu aktivieren.
Klicken Sie auf der Seite OS Config API auf Aktivieren.
Geben Sie im Feld Nach APIs und Diensten suchen
Computeein.Klicken Sie in der Liste der Suchergebnisse auf Compute Engine API. Wenn die Compute Engine API nicht angezeigt wird, haben Sie nicht die erforderlichen Berechtigungen, um die Compute Engine API zu aktivieren.
Klicken Sie auf der Seite Compute Engine API auf Aktivieren.
Geben Sie im Feld Nach APIs und Diensten suchen
Network Servicesein.Klicken Sie in der Liste der Suchergebnisse auf Network Services API. Wenn die Network Services API nicht angezeigt wird, haben Sie nicht die erforderlichen Berechtigungen, um die Network Services API zu aktivieren.
Klicken Sie auf der Seite Network Services API auf Aktivieren.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud services enable osconfig.googleapis.com \ trafficdirector.googleapis.com \ compute.googleapis.com \ networkservices.googleapis.com
xDS-Version
Für die Dienstrouting-APIs müssen Sie xDS v3 verwenden. Informationen zum Aktualisieren Ihrer Bereitstellung von xDS v2 auf xDS v3 finden Sie unter xDS-Steuerungsebenen-APIs.
Zusätzliche Anforderungen bei Verwendung von Envoy-Proxys
In diesem Abschnitt werden zusätzliche Anforderungen für die Verwendung von Cloud Service Mesh mit den Dienstrouting-APIs und Envoy-Proxys beschrieben. Wenn Sie mit proxylosen gRPC-Diensten bereitstellen, finden Sie weitere Informationen unter Zusätzliche Anforderungen bei Verwendung von proxylosen gRPC-Diensten.
Installation von Envoy
Während der Bereitstellung von Cloud Service Mesh erstellen Sie eine VM-Vorlage, mit der Envoy automatisch auf den VMs installiert wird, auf denen Ihre Anwendungen ausgeführt werden.
Informationen zu Envoy-Versionen
Envoy muss zum Arbeiten mit Cloud Service Mesh Version 1.20.0 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:
Bei der automatisierten Envoy-Bereitstellung mit Compute Engine-VMs 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.
Informationen zu bestimmten Envoy-Versionen finden Sie unter Versionsverlauf. Informationen zu Sicherheitslücken finden Sie unter Sicherheitshinweise.
Zusätzliche Anforderungen bei Verwendung von proxylosen gRPC-Diensten
In diesem Abschnitt werden zusätzliche Anforderungen für die Verwendung von Cloud Service Mesh mit den Dienstrouting-APIs und proxylosen gRPC-Diensten beschrieben. Wenn Sie mit Envoy Proxys bereitstellen, finden Sie weitere Informationen unter Zusätzliche Anforderungen bei Verwendung von Envoy-Proxys.
Allgemeiner Prozess bei Verwendung von proxylosen gRPC-Diensten
Führen Sie 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 Cloud Service Mesh an.
- Konfigurieren Sie Cloud Service Mesh- 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 Cloud Service Mesh 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 Cloud Service Mesh und proxylosen gRPC-Diensten unterstützt werden, finden Sie unter Cloud Service Mesh-Funktionen.
Cloud Service Mesh sorgt für die Kompatibilität mit aktuellen und unterstützten Versionen von gRPC und ist bestrebt, mit gRPC-Versionen kompatibel zu sein, die weniger als ein Jahr alt sind, gemäß den Google Cloud Nutzungsbedingungen der Plattform.
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 Cloud Service Mesh-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 Cloud Service Mesh 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 (Cloud Service Mesh) 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 Cloud Service Mesh gRPC Bootstrap-Generators verwenden.
Zusätzlich zur Anwendung muss eine Bootstrap-Datei mit den erforderlichen Informationen für die Verbindung mit Cloud Service Mesh 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
Funktionsweise von Standardanmeldedaten für Anwendungen.
|
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_MESH_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 einem der folgenden Dokumente fort, wenn Sie Cloud Service Mesh mit den Dienstrouting-APIs konfigurieren:
- Proxylose gRPC-Dienste mit einer
Mesh-Ressource einrichten - Envoy-Proxys mit HTTP-Diensten einrichten
- Ingress-Gateway einrichten
- TCP-Dienste mit einer
TCPRoute-Ressource einrichten - Projektübergreifende Verweise mit
Mesh- undRoute-Ressourcen einrichten - Gateway-TLS-Routing einrichten