Questa pagina si applica ad Apigee, ma non ad Apigee hybrid.
Visualizza la documentazione di
Apigee Edge.
Questa pagina descrive i passaggi da completare prima di poter installare e configurare l'operatore Apigee APIM per Kubernetes. Per saperne di più sui vantaggi dell'utilizzo dell'operatore APIM, consulta Panoramica dell'operatore APIM Apigee per Kubernetes.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare le risorse richieste per installare e utilizzare l'operatore APIM, chiedi all'amministratore di concederti i seguenti ruoli IAM nell'organizzazione:
-
Crea e gestisci il cluster Google Kubernetes Engine (GKE):
Amministratore container (
roles/container.admin
) -
Crea e gestisci service account:
Amministratore service account (
roles/iam.serviceAccountAdmin
) -
Crea e gestisci le estensioni di servizio:
Service Extensions Admin (
roles/networkservices.serviceExtensionsAdmin
) -
Crea e gestisci gruppi di endpoint di rete (NEG):
Compute Instance Admin (
roles/compute.instanceAdmin
) -
Crea e gestisci i servizi di backend:
Amministratore bilanciatore del carico Compute (
roles/compute.loadBalancerAdmin
) -
Crea e gestisci risorse Apigee:
Apigee Admin (
roles/apigee.admin
)
Per ulteriori informazioni sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
Attività di configurazione richieste
Prima di installare l'operatore APIM, assicurati di completare le seguenti attività per configurare le risorse necessarie per utilizzare la funzionalità:
Esegui il provisioning di un'istanza Apigee utilizzando la versione
1-15-0-apigee-4
o successive.Puoi visualizzare le versioni delle istanze nella pagina Dettagli istanza dell'interfaccia utente Apigee nella console Google Cloud .Vai alla pagina Istanze nella console Google Cloud per selezionare un'istanza e visualizzarne i dettagli:
Puoi utilizzare APIM Operator con un'organizzazione Apigee Subscription o Pay-as-you-go. Per maggiori dettagli sul provisioning delle istanze Apigee a pagamento, consulta Prima di iniziare.
Installa Google Cloud CLI.
Dopo aver installato Google Cloud CLI, esegui il comando
gcloud components update
per ottenere i componenti gcloud più recenti.- Installa e configura lo strumento a riga di comando
kubectl
. - Installa Helm (versione v3.14.3 o successive).
Crea un cluster GKE utilizzando GKE versione 1.27 o successive con Workload Identity Federation for GKE e GKE Gateway abilitati.
Se hai un cluster esistente che soddisfa questi requisiti, puoi saltare questo passaggio.
Workload Identity Federation for GKE è abilitato per impostazione predefinita quando utilizzi la modalità Autopilot per creare e gestire i tuoi cluster. Per saperne di più, consulta la panoramica di Autopilot.
Per i passaggi necessari per creare un nuovo cluster con la federazione delle identità per i carichi di lavoro per GKE e GKE Gateway abilitati utilizzando Autopilot, consulta Deployment dei gateway.
- Esegui il deployment di un gateway GKE nel tuo cluster.
Puoi scegliere di configurare ed eseguire il deployment di un gateway interno o di un gateway esterno da utilizzare con APIM Operator. Se scegli di eseguire il deployment di un gateway interno, sono necessari una subnet solo proxy e un VPC condiviso. Per testare i passaggi descritti in questa guida, ti consigliamo di eseguire il deployment di un gateway esterno. Per maggiori informazioni, consulta Requisiti del controller GKE Gateway.
Per eseguire il deployment di GKE Gateway, segui i passaggi descritti in Eseguire il deployment di un gateway esterno. Quando crei il gateway, utilizza la seguente configurazione
yaml
:# gateway.yaml kind: Gateway apiVersion: gateway.networking.k8s.io/v1beta1 metadata: name: global-ext-lb1 namespace: default spec: gatewayClassName: gke-l7-global-external-managed listeners: - name: http protocol: HTTP allowedRoutes: kinds: - kind: HTTPRoute namespaces: from: All port: 80
Applica il file al cluster:
kubectl apply -f gateway.yaml
- Esegui il deployment di un'applicazione di backend nel cluster.
Per eseguire il deployment dell'applicazione di backend esposta dal gateway
global-ext-lb1
che hai creato e di cui hai eseguito il deployment:- Crea un nuovo file denominato
target.yaml
. - Copia i seguenti contenuti nel nuovo file:
# target.yaml apiVersion: v1 kind: Namespace metadata: name: http --- apiVersion: v1 kind: ServiceAccount metadata: name: httpbin namespace: http --- apiVersion: v1 kind: Service metadata: name: httpbin namespace: http labels: app: httpbin service: httpbin spec: type: LoadBalancer ports: - name: https port: 80 targetPort: 80 selector: app: httpbin --- apiVersion: apps/v1 kind: Deployment metadata: name: httpbin namespace: http spec: replicas: 1 selector: matchLabels: app: httpbin version: v1 template: metadata: labels: app: httpbin version: v1 spec: serviceAccountName: httpbin containers: - image: docker.io/kennethreitz/httpbin imagePullPolicy: IfNotPresent name: httpbin ports: - containerPort: 80 resources: requests: cpu: 1 memory: 1024Mi limits: cpu: 1 memory: 1024Mi
- Applica la configurazione al cluster:
kubectl apply -f target.yaml
Per saperne di più sul deployment delle applicazioni di backend nei cluster GKE, consulta Eseguire il deployment delle applicazioni demo.
- Crea un nuovo file denominato
- Esegui il deployment della risorsa HTTPRoute nel cluster per mappare il traffico dal gateway al servizio di backend.
Per ulteriori informazioni sulla risorsa HTTPRoute, consulta Deploy the HTTPRoute (per i gateway interni) o Create an HTTPRoute (per i gateway esterni).
Ai fini di questa guida, ti consigliamo di eseguire il deployment di un gateway e di un HTTPRoute esterni seguendo i passaggi descritti in Creare un HTTPRoute. Quando crei HTTPRoute, utilizza la seguente configurazione
yaml
, sostituendoHOST_NAME
con il nome host che vuoi utilizzare:# httproute.yaml kind: HTTPRoute apiVersion: gateway.networking.k8s.io/v1beta1 metadata: name: http-bin-route namespace: http spec: parentRefs: - kind: Gateway name: global-ext-lb1 namespace: default hostnames: - HOST_NAME rules: - matches: - path: value: / backendRefs: - name: httpbin kind: Service port: 80 namespace: http
Applica il file al cluster:
kubectl apply -f httproute.yaml
- Verifica la configurazione di GKE Gateway per confermare che funzioni come previsto.
- Recupera i dettagli del gateway utilizzando il seguente comando:
kubectl get gateway global-ext-lb1
L'output dovrebbe essere simile al seguente:
NAME CLASS ADDRESS PROGRAMMED AGE global-ext-lb1 gke-l7-global-external-managed 34.54.193.72 True 11d
Verifica che al gateway sia assegnato un indirizzo IP e che il valore di
PROGRAMMED
siaTrue
. - Descrivi il gateway per confermare che l'itinerario sia allegato:
kubectl describe gateway global-ext-lb1
L'output dovrebbe essere simile al seguente:
... Listeners: Attached Routes: 1 Conditions: Last Transition Time: 2024-10-03T03:10:17Z ...
Verifica che il valore di
Attached Routes
sia1
, a indicare che la route è allegata. - Invia una richiesta al gateway:
curl http://GATEWAY_IP_ADDRESS/get \ -H "Host: HOST_NAME"
Dove:
GATEWAY_IP_ADDRESS
è l'indirizzo IP del gateway. Puoi recuperare l'indirizzo IP del gateway utilizzando il seguente comando, doveGATEWAY_NAME
è il nome del gateway:kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
HOST_NAME
è il nome host definito inHTTPRoute
del gateway. Puoi recuperareHOST_NAME
utilizzando il seguente comando:kubectl get HTTPRoute HTTPROUTE_NAME -n NAMESPACE
For example:
curl http://34.54.193.72/get \ -H "Host: apigee-apim-operator-test.apigee.net"
La risposta dovrebbe essere simile alla seguente:
{ "args": {}, "headers": { "Accept": "*/*", "Host": "apigee-apim-operator-test.apigee.net", "User-Agent": "curl/8.7.1", "X-Cloud-Trace-Context": "2bb8a80e29e80662ff9cb89971c447d9/13083106619927322701" }, "origin": "67.164.1.10,34.54.193.72", "url": "http://apigee-apim-operator-test.apigee.net/get" }
- Recupera i dettagli del gateway utilizzando il seguente comando:
Passaggi successivi
Scopri come installare l'operatore APIM.