Einrichtung der Gateway API für Cloud Service Mesh vorbereiten
Auf dieser Seite wird beschrieben, wie Sie die erforderlichen benutzerdefinierten Ressourcendefinitionen für das Gateway in Ihrem Cluster installieren.
Beschränkungen
- Die Verwendung einer Mischung aus
gateway
- undistio
-config-api-Clustern in derselben Flotte wird nicht unterstützt. Prüfen Sie, ob die config-api für alle Cluster in Ihrer Flotte aufgateway
gesetzt ist. Verwenden Sie den Befehlgcloud container fleet mesh describe --project FLEET_PROJECT_ID
, um zu sehen, was Sie für Ihre Flotte konfiguriert haben. - Multi-Cluster-Service-Discovery und Load-Balancing werden für
gateway
-config-api-Cluster nicht unterstützt. - Wenn ein Cluster mit dem vorhandenen
--management automatic
-Flag eingebunden wird, verwendet der Cluster dieistio
-Konfigurations-API und kann nicht zurgateway
-API wechseln. - Es werden nur FQDNs unterstützt. Kurznamen werden nicht unterstützt.
Überlegungen zur Verwaltung der Datenebene
Bei neuen Pods verwaltet Google, welche Proxyversion eingefügt wird. Die verwaltete Datenebene verwendet den Google Kubernetes Engine (GKE)-Releasekanal, um die Proxyversion zu bestimmen.
Bei vorhandenen Pods erfolgt die Proxyverwaltung passiv, basierend auf dem natürlichen Lebenszyklus der Pods im Cluster. Starten Sie Ihre Arbeitslasten neu, um das Update auszulösen und neue Versionen des Proxys noch einmal einzufügen.
Vorbereitung
In diesem Leitfaden wird davon ausgegangen, dass Sie bereits ein Google Cloud -Projekt erstellt und kubectl
installiert haben.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine, GKE Hub, and Cloud Service Mesh APIs.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Kubernetes Engine, GKE Hub, and Cloud Service Mesh APIs.
- CLUSTER_NAME ist der Name Ihres Clusters.
- LOCATION ist der Standort Ihres Clusters.
- PROJECT_ID ist die Projekt-ID Ihres Clusters.
Öffnen Sie in der Google Cloud Console die Seite Google Kubernetes Engine.
Klicken Sie auf add_box Erstellen.
Klicken Sie unter Standard auf Konfigurieren.
Geben Sie im Bereich Clustergrundlagen Folgendes ein:
- Geben Sie den Namen für den Cluster ein.
- Wählen Sie als Standorttyp eine Compute Engine-Region für Ihren Cluster aus.
Klicken Sie im Navigationsbereich unter Knotenpools auf default-pool und wählen Sie Sicherheit aus.
Wählen Sie in der Liste Zugriffsbereiche die Option Zugriff für jede API festlegen aus und legen Sie Cloud Platform auf Aktiviert fest.
Klicken Sie im Navigationsbereich im Abschnitt Cluster auf Netzwerk.
Wählen Sie in der Liste Cluster Networking (Clusternetzwerk) die Option Enable Gateway API (Gateway API aktivieren) aus.
Klicken Sie im Navigationsbereich unter Cluster auf Sicherheit.
Wählen Sie in der Liste Sicherheit die Option Workload Identity aktivieren aus.
Klicken Sie auf Erstellen.
Registrieren Sie den Cluster auf einer Flotte:
gcloud container fleet memberships register CLUSTER_NAME \ --gke-cluster LOCATION/CLUSTER_NAME \ --project=PROJECT_ID
Prüfen Sie, ob der Cluster bei der Flotte registriert ist:
gcloud container fleet memberships list --project=PROJECT_ID
Die Ausgabe sieht etwa so aus:
NAME EXTERNAL_ID LOCATION my-cluster 91980bb9-593c-4b36-9170-96445c9edd39 us-west1
Aktivieren Sie die Mesh-Funktion:
gcloud container fleet mesh enable --project PROJECT_ID
Aktualisieren Sie das Mesh, um die Gateway API zu verwenden:
gcloud alpha container fleet mesh update \ --config-api gateway \ --memberships CLUSTER_NAME \ --project PROJECT_ID
Prüfen Sie das Update, indem Sie den Status der Cloud Service Mesh-Ressource beschreiben:
gcloud alpha container fleet mesh describe \ --project PROJECT_ID
Erstellen Sie eine YAML-Datei, in der die Verwendung der Gateway API angegeben wird:
echo "configapi: gateway" > mesh.yaml
Mesh aktualisieren:
gcloud alpha container fleet mesh update --project FLEET_PROJECT_ID \ --fleet-default-member-config mesh.yaml
Sie können einen Cluster erstellen und ihn in einem Schritt bei Ihrer Flotte registrieren, um die Standardkonfiguration zu verwenden:
gcloud container clusters create CLUSTER_NAME \ --project PROJECT_ID \ --fleet-project FLEET_PROJECT_ID \ --location=LOCATION \
Aktivieren Sie die Identitätsföderation von Arbeitslasten für GKE und führen Sie den GKE-Metadatenserver auf Ihrem Knoten aus.
- CLUSTER_NAME ist der Name Ihres Clusters.
- LOCATION ist der Standort Ihres Clusters.
- PROJECT_ID ist die Projekt-ID Ihres Clusters.
GKE-Cluster erstellen und registrieren
gcloud
Erstellen Sie einen GKE-Cluster.
gcloud container clusters create CLUSTER_NAME \
--location=LOCATION \
--enable-ip-alias \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--release-channel=regular \
--project=PROJECT_ID \
--gateway-api=standard \
--workload-pool=PROJECT_ID.svc.id.goog \
--workload-metadata=GKE_METADATA
Dabei gilt:
Console
Nachdem der Cluster erstellt wurde:
Berechtigungen einrichten
Mit den folgenden Befehlen wird allen authentifizierten Nutzern die Berechtigung erteilt. Sie können jedoch die Identitätsföderation von Arbeitslasten für GKE verwenden, um die Berechtigung nur für ausgewählte Konten zu erteilen. Weitere Informationen zur Funktionsweise der Identitätsföderation von Arbeitslasten für GKE finden Sie unter Identitätsföderation von Arbeitslasten für GKE. Informationen zum Konfigurieren der Identitätsföderation von Arbeitslasten für GKE finden Sie unter Authentifizierung bei Google Cloud APIs über GKE-Arbeitslasten.
Weisen Sie die Rolle trafficdirector.client
zu:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member "group:PROJECT_ID.svc.id.goog:/allAuthenticatedUsers/" \
--role "roles/trafficdirector.client"
Cloud Service Mesh aktivieren
Neue Mitgliedschaften in deiner Flotte standardmäßig für die Gateway API festlegen (optional)
Alternativ können Sie Standardeinstellungen auf Flottenebene für neue GKE-Cluster erstellen, die während der Clustererstellung bei der Flotte registriert werden, damit sie automatisch mit der Gateway API konfiguriert werden.
Benutzerdefinierte Ressourcendefinitionen installieren
Generieren Sie einen kubeconfig-Eintrag für Ihren Cluster:
gcloud container clusters get-credentials CLUSTER_NAME --location LOCATION --project PROJECT_ID
Dabei gilt:
Installieren Sie die benutzerdefinierte GRPCRoute-Ressourcendefinition (CRD):
curl https://raw.githubusercontent.com/kubernetes-sigs/gateway-api/v1.1.0/config/crd/standard/gateway.networking.k8s.io_grpcroutes.yaml \
| kubectl apply -f -
Die Ausgabe sieht etwa so aus:
customresourcedefinition.apiextensions.k8s.io/grpcroutes.gateway.networking.k8s.io created