Diese Seite gilt für Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen
Auf dieser Seite wird beschrieben, wie Sie ein ApigeeBackendService
und die erforderliche Traffic-Erweiterung für das GKE-Gateway (Google Kubernetes Engine) erstellen, das in Ihrem Cluster ausgeführt wird.
Dieser Ansatz ist eine Alternative zur Verwendung von APIMExtensionPolicy
, um die Apigee-Datenebene als Policy Decision Point (PDP) für das GKE-Gateway zu identifizieren.
Wenn Sie ein ApigeeBackendService
erstellen, erstellt der Apigee-Operator für Kubernetes automatisch ein APIMExtensionPolicy
mit demselben Namen und Namespace wie das ApigeeBackendService
.
Dies ist die zugrunde liegende APIMExtensionPolicy
.
Wir empfehlen diesen Ansatz, wenn Sie Cloud Load Balancing-Traffic-Erweiterungen erstellen und verwalten und Apigee als Erweiterung in Ihrer Traffic-Erweiterungsressource hinzufügen möchten. Sie müssen ApigeeBackendService
verwenden, wenn die Apigee-Traffic-Erweiterung in Verbindung mit anderen Traffic-Erweiterungen funktioniert.
Hinweise
Führen Sie die folgenden Schritte aus, bevor Sie mit dieser Aufgabe beginnen:
- Prüfen Sie, ob in Ihrer GKE-Implementierung GKE-Version 1.34.x oder höher verwendet wird.
- Prüfen Sie, ob für Ihren GKE-Cluster eine Workload Identity konfiguriert ist. Die erforderlichen Schritte finden Sie unter Workload Identity erstellen.
- Prüfen Sie, ob für Ihren Cluster ein GKE Gateway konfiguriert ist und funktioniert. Weitere Informationen finden Sie unter Gateways bereitstellen.
- Installieren Sie den Apigee-Operator für Kubernetes. Eine Installationsanleitung finden Sie unter Apigee Operator für Kubernetes installieren.
Erforderliche Rollen
Wenn Sie Ihrem Dienstkonto die erforderlichen Rollen zugewiesen haben, wie unter Apigee Operator für Kubernetes installieren beschrieben, sind keine zusätzlichen IAM-Rollen oder Berechtigungen erforderlich, um diese Aufgaben auszuführen.
Sie können Aktionen für Ressourcen in Ihrem Google Kubernetes Engine-Cluster mithilfe des integrierten Mechanismus für rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) in Kubernetes autorisieren. Weitere Informationen finden Sie unter Aktionen in Clustern mit rollenbasierter Zugriffssteuerung autorisieren.
ApigeeBackendService-Ressource erstellen
Wenn Sie eine Traffic Service-Erweiterung für Ihr GKE-Gateway konfigurieren möchten, erstellen Sie zwei Hauptressourcen:
- ApigeeBackendService:Mit dieser benutzerdefinierten Ressource wird die Apigee-Datenebene als Policy Decision Point (PDP) angegeben und Netzwerkdetails für Private Service Connect-Netzwerk-Endpunktgruppen (PSC-NEGs) konfiguriert.
- GCPTrafficExtension:Diese GKE Gateway API-Ressource definiert die Erweiterungskette, einschließlich der Weiterleitung von Traffic an den ApigeeBackendService.
ApigeeBackendService
erstellen
Die ApigeeBackendService
-Ressource gibt die Apigee-Datenebene als PDP für eine GCPTrafficExtension
an.
So erstellen Sie ein ApigeeBackendService
:
- Erstellen Sie eine YAML-Datei mit dem Namen
apigee-backend-service.yaml
und dem folgenden Inhalt: - ENV_NAME ist die zu verwendende Apigee-Umgebung. Dies ähnelt dem Feld
apigeeEnv
in derAPIMExtensionPolicy
. Dieses Feld ist für Apigee optional und für Hybrid erforderlich. - SECURITY_ENABLED (Optional) gibt an, ob die standardmäßigen Apigee-Richtlinien für die API-Schlüsselvalidierung und Kontingentprüfungen automatisch aktiviert werden. Wenn keine Angabe gemacht wird, ist der Standardwert
true
. - REGION_NAME_1 gibt die Region an, in der Sie das GKE Gateway bereitstellen.
- NETWORK_NAME_1 und SUBNET_NAME_1 geben die vollständigen Ressourcen-URIs des Netzwerks und Subnetzwerks an, in denen die PSC-NEGs erstellt werden. Beispiel:
projects/my-project/global/networks/my-default
undprojects/my-project/regions/us-central1/subnetworks/my-default
. In der Regel sind sie mit dem Netzwerk und Subnetzwerk des GKE-Cluster identisch. - REGION_NAME_2, NETWORK_NAME_2 und SUBNET_NAME_2 sind optional. Sie benötigen sie, wenn Sie die Apigee-Traffic-Erweiterung in mehreren Regionen bereitstellen.
- Wenden Sie die YAML-Datei auf Ihren Cluster im Namespace
default
an:kubectl apply -f apigee-backend-service.yaml
- Prüfen Sie, ob
ApigeeBackendService
erfolgreich erstellt wurde:kubectl get apigeebackendservice
Die Ausgabe sollte in etwa so aussehen:
NAMESPACE NAME STATE ERRORMESSAGE default default-ext-lb1-apim-policy CREATED
# apigee-backend-service.yaml kind: ApigeeBackendService apiVersion: apim.googleapis.com/v1 metadata: name: my-apigee-extension-backend-service spec: apigeeEnv: ENV_NAME # optional for Apigee, required for hybrid defaultSecurityEnabled: SECURITY_ENABLED locations: # required field - name: REGION_NAME_1 network: NETWORK_NAME_1 subnet: SUBNET_NAME_1 - name: REGION_NAME_2 network: NETWORK_NAME_2 subnet: SUBNET_NAME_2
Wobei:
Wenn Sie ein ApigeeBackendService
erstellen, erstellt der Apigee Operator für Kubernetes automatisch ein APIMExtensionPolicy
mit demselben Namen und Namespace wie das ApigeeBackendService
.
Dies ist die zugrunde liegende APIMExtensionPolicy
.
Wenn defaultSecurityEnabled
auf true
festgelegt ist, fügt der Apigee Operator für Kubernetes dem APIMExtensionPolicy
automatisch den Standard-API-Schlüssel und die Kontingentrichtlinien hinzu. Informationen zum Hinzufügen zusätzlicher Richtlinien finden Sie unter Richtlinien zum GKE Gateway hinzufügen.
Ressource GCPTrafficExtension
erstellen
Mit der Ressource GCPTrafficExtension
wird eine Erweiterung für Apigee definiert und auf die im vorherigen Schritt erstellte ApigeeBackendService
als backendRef
verwiesen.
Weitere Informationen zum Konfigurieren einer GCPTrafficExtension
finden Sie unter Diensterweiterungen konfigurieren.
Das Feld supportedEvents
gibt an, welche Teile des Anfrage- und Antwortzyklus für die Erweiterung verfügbar sind. Der Apigee-Operator für Kubernetes unterstützt die folgenden Ereignisse:
RequestHeaders
RequestBody
RequestTrailers
ResponseHeaders
ResponseBody
ResponseTrailers
RequestBody
und ResponseBody
in die Liste supportedEvents
aufnehmen.
Weitere Informationen zu unterstützten Ereignissen finden Sie in der Dokumentation zu Cloud Load Balancing-Trafficerweiterungen.
So erstellen Sie ein GCPTrafficExtension
:
- Erstellen Sie eine YAML-Datei mit dem Namen
gcp-traffic-extension.yaml
und dem folgenden Inhalt:# gcp-traffic-extension.yaml kind: GCPTrafficExtension apiVersion: networking.gke.io/v1 metadata: name: my-apigee-extension spec: targetRefs: - group: "gateway.networking.k8s.io" kind: Gateway name: GATEWAY_NAME # Replace with your GKE Gateway name extensionChains: - name: EXTENSION_CHAIN_NAME matchCondition: celExpressions: - celMatcher: request.path.startsWith("/") extensions: - name: EXTENSION_NAME metadata: # This metadata label must match the name of the ApigeeBackendService apigee-extension-processor : APIGEE_BACKEND_SERVICE_NAME failOpen: false supportedEvents: - SUPPORTED_EVENT1 - SUPPORTED_EVENT2 timeout: 1s requestBodySendMode: FullDuplexStreamed backendRef: # References the ApigeeBackendService by
kind
andname
kind: ApigeeBackendService name: APIGEE_BACKEND_SERVICE_NAME Port: 443Wobei:
- GATEWAY_NAME ist der Name des GKE Gateways, für das die Erweiterung gilt.
- EXTENSION_CHAIN_NAME ist der Name der Erweiterungskette.
- EXTENSION_NAME ist der Name der Traffic-Diensterweiterung.
- APIGEE_BACKEND_SERVICE_NAME ist der Name des zuvor erstellten
ApigeeBackendService
. Dieses Label imextensions
-Block muss mit demmetadata.name
des zuvor erstelltenApigeeBackendService
übereinstimmen. - Das Feld
supportedEvents
gibt an, welche Teile des Anfrage- und Antwortzyklus für die Erweiterung verfügbar sind. Der Apigee Operator für Kubernetes unterstützt die folgenden Ereignisse:RequestHeaders
RequestBody
RequestTrailers
ResponseHeaders
ResponseBody
ResponseTrailers
RequestBody
undResponseBody
in die ListesupportedEvents
aufnehmen. Weitere Informationen zu unterstützten Ereignissen finden Sie in der Dokumentation zu Cloud Load Balancing-Trafficerweiterungen.
- Wenden Sie die YAML-Datei auf den Cluster an:
kubectl apply -f gcp-traffic-extension.yaml