Questa pagina si applica ad Apigee e Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Questa pagina descrive come creare un ApigeeBackendService
e l'estensione del traffico richiesta
sul gateway Google Kubernetes Engine (GKE) in esecuzione nel cluster.
Questo approccio è un'alternativa all'utilizzo di APIMExtensionPolicy
per identificare il data plane Apigee come Policy Decision Point (PDP) per GKE Gateway.
Quando crei un ApigeeBackendService
, l'operatore Apigee per Kubernetes crea automaticamente un APIMExtensionPolicy
con lo stesso nome e lo stesso spazio dei nomi del ApigeeBackendService
.
Questo è il supporto APIMExtensionPolicy
.
Ti consigliamo questo approccio se crei e gestisci
estensioni del traffico di bilanciamento del carico Cloud
e vuoi aggiungere Apigee come estensione nella risorsa estensione del traffico. Devi utilizzare
ApigeeBackendService
se l'estensione del traffico Apigee funziona in combinazione
con altre estensioni del traffico.
Prima di iniziare
Prima di iniziare questa attività, completa i seguenti passaggi:
- Verifica che l'implementazione di GKE utilizzi GKE 1.34.x o versioni successive.
- Verifica che nel cluster GKE sia configurata un'Workload Identity. Per i passaggi richiesti, consulta Creare un'identità del workload.
- Verifica che il cluster abbia un gateway GKE configurato e funzionante. Per ulteriori dettagli, consulta Deployment dei gateway.
- Installa l'operatore Apigee per Kubernetes. Per istruzioni sull'installazione, consulta Installare l'operatore Apigee per Kubernetes.
Ruoli obbligatori
Se hai assegnato i ruoli richiesti al account di servizio come descritto in Installare l'operatore Apigee per Kubernetes, non sono necessari ulteriori ruoli o autorizzazioni IAM per completare queste attività.
Puoi autorizzare le azioni sulle risorse nel cluster Google Kubernetes Engine utilizzando il meccanismo di controllo dell'accesso basato sui ruoli (RBAC) integrato in Kubernetes. Per maggiori informazioni, vedi Autorizzare le azioni nei cluster utilizzando il controllo degli accessi basato sui ruoli.
Crea la risorsa ApigeeBackendService
Per configurare un'estensione del servizio di gestione del traffico sul gateway GKE, crea due risorse principali:
- ApigeeBackendService:questa risorsa personalizzata specifica il data plane Apigee come punto decisionale dei criteri (PDP) e configura i dettagli di rete per i gruppi di endpoint di rete (NEG) Private Service Connect (PSC).
- GCPTrafficExtension:questa risorsa API GKE Gateway definisce la catena di estensioni, incluso il modo in cui il traffico viene indirizzato ad ApigeeBackendService.
Crea un ApigeeBackendService
La risorsa ApigeeBackendService
specifica il piano dati Apigee come
PDP per un GCPTrafficExtension
.
Per creare un ApigeeBackendService
:
- Crea un file YAML denominato
apigee-backend-service.yaml
con i seguenti contenuti: - ENV_NAME è l'ambiente Apigee da utilizzare. È simile al campo
apigeeEnv
inAPIMExtensionPolicy
. Questo campo è facoltativo per Apigee e obbligatorio per l'ibrido. - SECURITY_ENABLED (facoltativo) specifica se le policy Apigee predefinite per la convalida delle chiavi API e i controlli delle quote vengono attivate automaticamente. Se non specificato, il valore predefinito è
true
. - REGION_NAME_1 specifica la regione in cui viene eseguito il deployment di GKE Gateway.
- NETWORK_NAME_1 e SUBNET_NAME_1 specificano gli URI completi delle risorse della rete e della subnet in cui vengono creati i NEG PSC. Ad esempio,
projects/my-project/global/networks/my-default
eprojects/my-project/regions/us-central1/subnetworks/my-default
. In genere, corrispondono alla rete e alla subnet del cluster GKE. - REGION_NAME_2, NETWORK_NAME_2 e SUBNET_NAME_2 sono facoltativi. Sono necessari se esegui il deployment dell'estensione del traffico Apigee in più regioni.
- Applica il file YAML al tuo cluster nello spazio dei nomi
default
:kubectl apply -f apigee-backend-service.yaml
- Verifica che
ApigeeBackendService
sia stato creato correttamente:kubectl get apigeebackendservice
L'output dovrebbe essere simile al seguente:
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
Dove:
Quando crei un ApigeeBackendService
, l'operatore Apigee per Kubernetes crea automaticamente
un APIMExtensionPolicy
con lo stesso nome e lo stesso spazio dei nomi del ApigeeBackendService
.
Questo è il supporto APIMExtensionPolicy
.
Se defaultSecurityEnabled
è impostato su true
, l'operatore Apigee per Kubernetes
aggiunge automaticamente le chiavi API e le norme relative alle quote predefinite a APIMExtensionPolicy
. Per aggiungere
altre policy, consulta Aggiungere policy al gateway GKE.
Crea una risorsa GCPTrafficExtension
La risorsaGCPTrafficExtension
definisce un'estensione per Apigee e fa riferimento
a ApigeeBackendService
creato nel passaggio precedente come backendRef
.
Per maggiori dettagli sulla configurazione di un GCPTrafficExtension
, vedi Configurare le estensioni di servizio.
Il campo supportedEvents
specifica quali parti del ciclo di vita della richiesta e della risposta sono esposte all'estensione. L'operatore Apigee per Kubernetes supporta i seguenti eventi:
RequestHeaders
RequestBody
RequestTrailers
ResponseHeaders
ResponseBody
ResponseTrailers
RequestBody
e ResponseBody
nell'elenco supportedEvents
.
Per saperne di più sugli eventi supportati, consulta la documentazione sulle estensioni del traffico di Cloud Load Balancing.
Per creare un GCPTrafficExtension
:
- Crea un file YAML denominato
gcp-traffic-extension.yaml
con i seguenti contenuti:# 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: 443Dove:
- GATEWAY_NAME è il nome del gateway GKE a cui si applica l'estensione.
- EXTENSION_CHAIN_NAME è il nome della catena di estensioni.
- EXTENSION_NAME è il nome dell'estensione di servizio del traffico.
- APIGEE_BACKEND_SERVICE_NAME è il nome di
ApigeeBackendService
creato in precedenza. Questa etichetta all'interno del bloccoextensions
deve corrispondere ametadata.name
diApigeeBackendService
creato in precedenza. - Il campo
supportedEvents
specifica quali parti del ciclo di vita della richiesta e della risposta sono esposte all'estensione. L'operatore Apigee per Kubernetes supporta i seguenti eventi:RequestHeaders
RequestBody
RequestTrailers
ResponseHeaders
ResponseBody
ResponseTrailers
RequestBody
eResponseBody
nell'elencosupportedEvents
. Per saperne di più sugli eventi supportati, consulta la documentazione sulle estensioni del traffico di Cloud Load Balancing.
- Applica il file YAML al cluster:
kubectl apply -f gcp-traffic-extension.yaml