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 APIM di Apigee per Kubernetes (anteprima). Per scoprire di più sui vantaggi dell'utilizzo di APIM Operator, consulta la Panoramica di Apigee APIM Operator per Kubernetes.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare le risorse richieste per installare e utilizzare APIM Operator, chiedi all'amministratore di concederti i seguenti ruoli IAM nell'organizzazione:
-
Crea e gestisci il cluster Google Kubernetes Engine (GKE):
Amministratore contenitori (
roles/container.admin
) -
Crea e gestisci gli account di servizio:
Amministratore account di servizio (
roles/iam.serviceAccountAdmin
) -
Crea e gestisci le estensioni di servizio:
Service Extensions Admin (
roles/networkservices.serviceExtensionsAdmin
) -
Crea e gestisci i gruppi di endpoint di rete (NEG):
Amministratore delle istanze Compute (
roles/compute.instanceAdmin
) -
Crea e gestisci i servizi di backend:
Amministratore bilanciatore del carico Compute (
roles/compute.loadBalancerAdmin
) -
Crea e gestisci le risorse Apigee:
Apigee Admin (
roles/apigee.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire 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 di cui hai bisogno per utilizzare la funzionalità:
Esegui il provisioning di un'istanza Apigee utilizzando la versione
1-14-0-apigee-4
o successiva.Puoi visualizzare le versioni delle istanze nella pagina Dettagli istanza dell'UI di Apigee nella console Google Cloud.Vai alla pagina Istanze nella console Google Cloud per selezionare un'istanza e visualizzarne i dettagli:
Puoi utilizzare Operatore APIM con un'organizzazione Apigee con abbonamento o pagamento a consumo. Per ulteriori 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 3.14.3 o successive).
Crea un cluster GKE con Workload Identity Federation for GKE e GKE Gateway abilitati.
La federazione delle identità per i carichi di lavoro per GKE è abilitata per impostazione predefinita quando utilizzi la modalità Autopilot per creare e gestire i tuoi cluster. Per ulteriori informazioni, 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 Eseguire il deployment di gateway.
- Esegui il deployment di una porta di GKE nel 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 implementare un gateway interno, sono necessarie una subnet solo proxy e una VPC condivisa. Ai fini di questa guida, ti consigliamo di eseguire il deployment di un gateway esterno. Per ulteriori informazioni, consulta i 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
- 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 ed eseguito:- 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 ulteriori informazioni sul deployment delle applicazioni di backend nei cluster GKE, consulta Eseguire il deployment delle applicazioni di 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 Eseguire il deployment di HTTPRoute (per i gateway interni) o Creare un'HTTPRoute (per i gateway esterni).
Ai fini di questa guida, ti consigliamo di eseguire il deployment di un gateway e di un percorso HTTP esterni seguendo i passaggi descritti in Creare un percorso HTTP. Quando crei HTTPRoute, utilizza la seguente configurazione
yaml
:# 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: - apigee-apim-operator-test.apigee.net rules: - matches: - path: value: / backendRefs: - name: httpbin kind: Service port: 80 namespace: http
- Verifica la configurazione di GKE Gateway per verificare che funzioni come previsto:
- Recupera i dettagli della porta di accesso utilizzando il seguente comando:
kubectl get gateway GATEWAY_NAME
dove GATEWAY_NAME è il nome del gateway GKE che hai creato.
Ad esempio:
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 stato assegnato un indirizzo IP e che il valore di
PROGRAMMED
siaTrue
. - Descrivi il gateway per confermare che il percorso è allegato:
kubectl describe gateway GATEWAY_NAME
Ad esempio:
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 il percorso è collegato. - Invia una richiesta al gateway:
curl http://GATEWAY_IP_ADDRESS/get -k \ -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 recuperare il HOST_NAME utilizzando il seguente comando:kubectl get HTTPRoute HTTPROUTE_NAME -n NAMESPACE
For example:
curl http://34.54.193.72/get -k \ -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 della porta di accesso utilizzando il seguente comando:
Passaggi successivi
Scopri come installare l'operatore APIM.