Cloud Service Mesh mit Envoy einrichten
Die Einrichtung von Cloud Service Mesh umfasst die folgenden Phasen:
- Berechtigungen gewähren, die Traffic Director API aktivieren und Cloud DNS konfigurieren, wenn Sie Compute Engine verwenden.
- Anwendungen mit Envoy-Proxys bereitstellen
- Dienste und Routingregeln erstellen, die festlegen, wie Traffic durch Ihr Service Mesh geleitet wird
In diesem Dokument wird die erste Phase beschrieben. Es gilt, wenn Sie die älteren APIs verwenden. Die zweite und dritte Phase umfasst die plattformspezifischen Anleitungen, die weiter unten in diesem Dokument unter Einrichtungsprozess fortsetzen aufgeführt werden.
Machen Sie sich mit der Cloud Service Mesh-Übersicht vertraut, bevor Sie diese Anleitung lesen. Wenn Sie die Dienstrouting-APIs verwenden, lesen Sie die Übersicht über Dienstrouting-APIs.
Vorbereitung
Unabhängig davon, ob Sie Cloud Service Mesh zum Konfigurieren von Envoy-Proxys verwenden, die zusammen mit Anwendungen auf VM-Instanzen, in Containern oder einer Mischung aus beidem ausgeführt werden, müssen Sie zuerst die folgenden Aufgaben ausführen:
- Aktivieren Sie die Abrechnung.
- Entscheiden, wie Sie Envoy installieren möchten
- Erforderliche Berechtigungen erteilen
- Traffic Director API für Ihr Projekt aktivieren
- Wenn Sie Compute Engine verwenden, aktivieren Sie die Cloud DNS API und konfigurieren Sie Cloud DNS.
- Prüfen, ob das von den Envoy-Proxys verwendete Dienstkonto ausreichende Berechtigungen für den Zugriff auf die Traffic Director API hat
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.
Entscheiden, wie Envoy installiert werden soll
Mit Cloud Service Mesh können Sie Envoy-Proxys installieren und diese Infrastrukturebene verwalten:
In Compute Engine können Sie Envoy automatisch zu Anwendungen hinzufügen, die auf Ihren VMs ausgeführt werden. Sie verwenden eine VM-Vorlage, die Envoy installiert, eine Verbindung zu Cloud Service Mesh herstellt und das Netzwerk Ihrer VM konfiguriert.
In Google Kubernetes Engine (GKE) können Sie den Pods Ihrer Dienste automatisch Envoy-Sidecar-Proxys hinzufügen. Sie installieren einen Envoy-Sidecar-Injektor in Ihrem Cluster, der Envoy-Sidecar-Proxys hinzufügt, sie mit Cloud Service Mesh verbindet und das Netzwerk Ihres Containers konfiguriert.
Schließlich können Sie auch Envoy-Bereitstellungslösungen von Drittanbietern mit Cloud Service Mesh 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.
Informationen zur Envoy-Versionsverwaltung
Envoy muss Version 1.9.1 oder höher sein, um mit Cloud Service Mesh zu funktionieren. 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:
Wenn Sie die automatisierte Envoy-Bereitstellung mit Compute Engine-VMs verwenden, 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.
Wenn Sie den Envoy-Sidecar-Injektor mit GKE verwenden, ist der Injektor so konfiguriert, dass er eine neue Version von Envoy verwendet, die wir für die Zusammenarbeit mit Cloud Service Mesh validieren. Wenn ein Sidecar zusammen mit dem Arbeitslast-Pod eingefügt wird, erhält er diese Version von Envoy. Wenn Sie eine neuere Version von Envoy verwenden möchten, aktualisieren Sie den Envoy-Sidecar-Injektor.
Informationen zu bestimmten Envoy-Versionen finden Sie unter Versionsverlauf. Informationen zu Sicherheitslücken finden Sie unter Sicherheitshinweise.
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 benötigen Sie alle in der folgenden Tabelle aufgeführten 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
( roles/iam.serviceAccountAdmin ) |
Aktivieren Sie 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 ) |
Der GKE-Knotenpool oder die Compute Engine-VMs müssen den Bereich https://www.googleapis.com/auth/cloud-platform
haben. Weitere Informationen finden Sie unter Fehlerbehebung bei Bereitstellungen, die Envoy verwenden.
Weisen Sie dem Dienstkonto, das von Cloud Service Mesh Envoy-Clients verwendet wird, die Rolle roles/trafficdirector.client
zu.
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
Cloud DNS API aktivieren und Cloud DNS konfigurieren
Folgen Sie dieser Anleitung, wenn Sie Cloud Service Mesh in der Compute Engine konfigurieren. Sie müssen die Cloud DNS API aktivieren und Cloud DNS für die DNS-Namensauflösung konfigurieren.
Hintergrundinformationen zu Cloud Service Mesh und DNS-Auflösung finden Sie unter Cloud Service Mesh und DNS-Namensauflösung.
Verwenden Sie zuerst die folgende Anleitung, um die Cloud DNS API zu 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
DNS
ein.Klicken Sie in der Liste der Suchergebnisse auf Cloud DNS API. Wenn die Cloud DNS API nicht aufgeführt ist, haben Sie nicht die erforderlichen Berechtigungen zum Aktivieren der Cloud DNS API.
Klicken Sie auf der Seite Cloud DNS API auf Aktivieren.
gcloud
Führen Sie dazu diesen Befehl aus:
gcloud services enable dns.googleapis.com
Konfigurieren Sie als Nächstes eine von Cloud DNS verwaltete private Zone. Folgen Sie der Anleitung unter Private Zone erstellen.
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 (z. B. Envoy-Proxys) 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
Workload Identity
in GKE nicht aktiviert ist, verwendet der xDS-Client das Dienstkonto, das dem zugrunde liegenden GKE-Knoten zugewiesen 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.
Sie benötigen die folgenden Berechtigungen: Nur xDS v3 wird unterstützt. Wenn Sie xDS v2 verwenden, müssen Sie zu xDS v3 migrieren. Informationen zur Migration finden Sie unter Von xDS v2 zu xDS v3 migrieren.
Wenn Sie xDS v3 verwenden, muss das von Ihren Clients verwendete Dienstkonto die Berechtigungen trafficdirector.networks.reportMetrics
und trafficdirector.networks.getConfigs
haben. Sie können die IAM-Rolle Cloud Service Mesh-Client (roles/trafficdirector.client
) verwenden, die beide Berechtigungen umfasst.
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 > Cloud Service Mesh-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 project
einSERVICE_ACCOUNT_EMAIL
ist die mit dem Dienstkonto verknüpfte E-Mail-Adresse
Einrichtung fortsetzen
Nachdem Sie nun die erforderlichen Schritte ausgeführt haben, können Sie mit der Einrichtung Ihres Service Mesh beginnen.