Einrichtung von Dienst-Routing-APIs mit Envoy und proxylosen Arbeitslasten vorbereiten

Dieses Dokument enthält Informationen zu den Aufgaben, die für das Einrichten einer Cloud Service Mesh, das die Service Routing APIs mit Envoy-Proxys oder mit proxylosem gRPC als Datenebene.

Die Einrichtung von Cloud Service Mesh umfasst mehrere Phasen. Dieses Dokument beschreibt die erste Phase: Anweisungen zur Vorbereitung der Konfiguration. Cloud Service Mesh mit VM-Instanzen oder proxylosen gRPC-Anwendungen. Die zusätzlichen Phasen werden in den plattformspezifischen Leitfäden behandelt, die unter Fahren Sie mit der Einrichtung unten in diesem Dokument fort.

Machen Sie sich mit den folgenden Dokumenten vertraut, bevor Sie diesen Leitfaden lesen. Sie bieten einen Überblick über die Verwendung von Cloud Service Mesh mit dem Dienst. Routing-APIs und Gateway APIs:

Vorbereitung

Führen Sie die folgenden Schritte aus, um Ihre Umgebung vorzubereiten:

  1. Sie können Projekte einrichten, die Ihren Geschäftsanforderungen entsprechen.
  2. Aktivieren Sie die Abrechnung.
  3. Erforderliche Berechtigungen erteilen
  4. Aktivieren Sie die Traffic Director API und andere APIs für Ihr Projekt.
  5. Stellen Sie sicher, dass das Dienstkonto über ausreichende Berechtigungen für den Zugriff auf die Traffic Director API
  6. 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 zugehöriger Dokumentation.

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 eine VM zu erstellen Instanzen und ändern ein Netzwerk, um das Cloud Service Mesh zu konfigurieren. Wenn Sie die Rolle des Projektinhabers oder -bearbeiters (roles/owner oder roles/editor) in dem Projekt, das Sie aktivieren Cloud Service Mesh haben Sie automatisch die richtigen Berechtigungen.

Andernfalls müssen Sie alle IAM-Rollen haben, die im folgenden Tabelle. Wenn Sie diese Rollen haben, sind auch die zugehörigen enthalten, wie in der Compute Engine-IAM-Dokumentation beschrieben.

Aufgabe Erforderliche Rolle
IAM-Richtlinie für ein Dienstkonto festlegen Dienstkontoadministrator
(roles/iam.serviceAccountAdmin)
Aktivieren Sie das Cloud Service Mesh. 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 Dienstkontonutzer
(roles/iam.serviceAccountUser)
Aktivieren Sie das Dienstkonto, um die erforderlichen Aufgaben auszuführen. Dienstkontonutzer
(roles.trafficdirector.client)

Die Compute Engine-VMs müssen https://www.googleapis.com/auth/cloud-platform Umfang. 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 Ihre Datenebene einrichten und mit Cloud Service Mesh verbinden, xDS-Clients, ob Envoy-Proxys oder proxylose gRPC-Clients, stellen 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.

Wenn Sie die Konfiguration nicht ändern, verwendet Google Cloud die Standardmäßiges Compute Engine-Dienstkonto

Verwenden Sie folgenden Befehl, um dem Dienstkonto Zugriff auf die Traffic Director API zu gewähren: instructions.

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 > Cloud Service Mesh-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

Dabei gilt:

  • PROJECT: geben Sie gcloud config get-value project ein
  • SERVICE_ACCOUNT_EMAIL ist die mit dem Dienstkonto verknüpfte E-Mail-Adresse

Aktivieren der erforderlichen APIs:

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

  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.

  5. Geben Sie im Feld Nach APIs und Diensten suchen OS Config ein.

  6. Klicken Sie in der Liste der Suchergebnisse auf OS Config. Wenn Sie das Symbol OS Config API aufgelistet sind, fehlen Ihnen die erforderlichen Berechtigungen zum Aktivieren der Traffic Director API.

  7. Klicken Sie auf der Seite OS Config API auf Aktivieren.

  8. Geben Sie im Feld Nach APIs und Diensten suchen Compute ein.

  9. Klicken Sie in der Liste der Suchergebnisse auf Compute Engine API. Wenn Sie das Symbol Compute Engine API aufgelistet ist, bedeutet dies, dass Sie nicht die erforderlichen Berechtigungen zum Aktivieren der Compute Engine API.

  10. Klicken Sie auf der Seite Compute Engine API auf Aktivieren.

  11. Geben Sie im Feld Nach APIs und Diensten suchen Network Services ein.

  12. Klicken Sie in der Liste der Suchergebnisse auf Network Services API. Wenn Sie das Symbol Network Services API aufgelistet ist, bedeutet das, dass Sie nicht über die erforderlichen Berechtigungen zum Aktivieren der Network Services API.

  13. 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 ist die Verwendung von xDS v3 erforderlich. Informationen zum Aktualisieren Ihrer Bereitstellung von xDS v2 zu xDS v3, siehe xDS-Steuerungsebenen-APIs

Zusätzliche Anforderungen für Envoy-Proxys

In diesem Abschnitt werden zusätzliche Anforderungen für die Verwendung von Cloud Service Mesh mit die Dienst-Routing-APIs und Envoy-Proxys. Bei der Bereitstellung mit einem proxylosen gRPC – siehe Zusätzliche Anforderungen mit proxylosem gRPC.

So wird Envoy installiert

Bei der Bereitstellung des Cloud Service Mesh erstellen Sie eine VM Vorlage, die Envoy automatisch auf den VMs installiert, auf denen Ihre Anwendungen run.

Envoy-Versionen

Envoy muss in der Version 1.20.0 oder höher installiert sein, um mit Cloud Service Mesh zu arbeiten. 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:

Automatisierte Envoy-Bereitstellung mit Compute Engine-VMs installiert Envoy die wir für Cloud Service Mesh validiert haben. 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 mit proxylosem gRPC

In diesem Abschnitt werden zusätzliche Anforderungen für die Verwendung von Cloud Service Mesh mit die Dienst-Routing-APIs und proxylose gRPC-Dienste. Bei Bereitstellung mit Envoy Weitere Informationen finden Sie unter Zusätzliche Anforderungen mit Envoy-Proxys.

Gesamtprozess mit proxylosen gRPC-Anwendungen

Folgen Sie diesem allgemeinen Verfahren zum Einrichten proxyloser gRPC-Anwendungen. in einem Service Mesh:

  1. Aktualisieren Sie Ihre gRPC-Clients mit der neuesten Version von gRPC mit dem neuesten Patch.
  2. Aktualisieren Sie die gRPC-Name-Resolver-Schema, wenn Sie einen Kanal erstellen und Geben Sie eine Bootstrap-Datei für Cloud Service Mesh an.
  3. 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. Dadurch wird auch sichergestellt, haben Zugriff auf die neuesten vom Cloud Service Mesh unterstützten Features. 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 -Features, die mit Cloud Service Mesh unterstützt werden, und proxylose gRPC-Dienste, siehe Cloud Service Mesh-Features

Cloud Service Mesh ist weiterhin mit aktuellen und unterstützten Versionen von gRPC und ist bestrebt, mit gRPC-Versionen in weniger als einem Jahr kompatibel zu sein. gemäß den Nutzungsbedingungen für die 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 Cloud Service Mesh-Konfiguration. 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, um Konfigurationsinformationen für das Ziel abzurufen . Gehen Sie daher folgendermaßen vor:

  • Erstellen Sie eine Bootstrap-Datei, wie im folgenden Beispiel gezeigt. Diese Datei teilt Ihnen mit, gRPC zum Herstellen einer Verbindung zu einem xDS-Server (Cloud Service Mesh), um die Konfiguration abzurufen für bestimmte Dienstleistungen.
  • 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. Um Ihnen die Arbeit zu erleichtern, können Sie die neueste Version von Cloud Service Mesh gRPC verwenden. Bootstrap-Generator.

Bootstrap-Datei mit den Informationen, die für die Verbindung erforderlich sind Cloud Service Mesh muss zusammen mit der Anwendung enthalten 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

id muss das folgende Format haben, wie im vorherigen Beispiel gezeigt:

projects/PROJECT_NUMBER/networks/NETWORK_NAME/nodes/ID

Geben Sie einen eindeutigen String als Wert für ID ein. So lässt sich der gRPC-Client identifizieren, der eine Verbindung zu Cloud Service Mesh.

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 du die in diesem Dokument beschriebenen Voraussetzungen erfüllt hast, fahre fort Verwenden Sie eines dieser Dokumente, wenn Sie das Cloud Service Mesh konfigurieren. mit den Dienstrouting-APIs: