Esta página se aplica a Apigee, pero no a Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
En esta página, se describen los pasos que debes completar antes de instalar y configurar el operador de APIM de Apigee para Kubernetes. Para obtener más información sobre los beneficios de usar el operador de APIM, consulta Descripción general del operador de APIM de Apigee para Kubernetes.
Roles requeridos
Para obtener los permisos que necesitas para configurar los recursos requeridos para instalar y usar el operador de APIM, pídele a tu administrador que te otorgue los siguientes roles de IAM en la organización:
-
Crea y administra el clúster de Google Kubernetes Engine (GKE):
Administrador de contenedores (
roles/container.admin
) -
Crear y administrar cuentas de servicio:
Administrador de cuentas de servicio (
roles/iam.serviceAccountAdmin
) -
Crear y administrar extensiones del servicio:
Administrador de extensiones del servicio (
roles/networkservices.serviceExtensionsAdmin
) -
Crear y administrar grupos de extremos de red (NEG):
Administrador de instancias de Compute (
roles/compute.instanceAdmin
) -
Crear y administrar servicios de backend:
Administrador de balanceador de cargas de Compute (
roles/compute.loadBalancerAdmin
) -
Crear y administrar recursos de Apigee:
Administrador de Apigee (
roles/apigee.admin
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Tareas de configuración obligatorias
Antes de instalar el operador de APIM, asegúrate de completar las siguientes tareas para configurar los recursos que necesitas para usar la función:
Aprovisiona una instancia de Apigee con la versión
1-15-0-apigee-4
o una posterior.Puedes ver las versiones de la instancia en la página Detalles de la instancia de la IU de Apigee en la consola de Google Cloud .Ve a la página Instancias en la consola de Google Cloud para seleccionar una instancia y ver sus detalles:
Puedes usar el operador de APIM con una organización de Apigee de suscripción o de Pay-as-you-go. Para obtener más detalles sobre el aprovisionamiento de instancias pagadas de Apigee, consulta Antes de comenzar.
Instala la Google Cloud CLI.
Después de instalar Google Cloud CLI, ejecuta el comando
gcloud components update
para obtener los componentes de gcloud más recientes.- Instala y configura la herramienta de línea de comandos de
kubectl
. - Instala Helm (versión v3.14.3 o posterior).
Crea un clúster de GKE con la versión 1.27 o posterior de GKE con la federación de identidades para cargas de trabajo en GKE y GKE Gateway habilitados.
Si tienes un clúster existente que cumple con estos requisitos, puedes omitir este paso.
La federación de identidades para cargas de trabajo para GKE está habilitada de forma predeterminada cuando usas el modo Autopilot para crear y administrar tus clústeres. Para obtener más información, consulta Descripción general de Autopilot.
Para conocer los pasos necesarios para crear un clúster nuevo con Workload Identity Federation for GKE y GKE Gateway habilitados con Autopilot, consulta Implementa Gateways.
- Implementa una puerta de enlace de GKE en tu clúster.
Puedes configurar e implementar una puerta de enlace interna o una puerta de enlace externa para usar con APIM Operator. Si eliges implementar una puerta de enlace interna, se requieren una subred de solo proxy y una VPC compartida. Para probar los pasos de esta guía, te recomendamos que implementes una puerta de enlace externa. Para obtener más información, consulta Requisitos del controlador de GKE Gateway.
En las configuraciones de ejemplo de esta guía, se usa una puerta de enlace externa.Para implementar la puerta de enlace de GKE, sigue los pasos que se describen en Implementa una puerta de enlace externa. Cuando crees la puerta de enlace, usa la siguiente configuración de
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
Aplica el archivo a tu clúster:
kubectl apply -f gateway.yaml
- Implementa una aplicación de backend en tu clúster.
Para implementar la aplicación de backend expuesta por la puerta de enlace
global-ext-lb1
que creaste y que implementaste, haz lo siguiente:- Crea un archivo nuevo llamado
target.yaml
. - Copia el siguiente contenido en el archivo nuevo:
# 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
- Aplica la configuración a tu clúster:
kubectl apply -f target.yaml
Para obtener más información sobre cómo implementar aplicaciones de backend en clústeres de GKE, consulta Implementa las aplicaciones de demostración.
- Crea un archivo nuevo llamado
- Implementa el recurso HTTPRoute en tu clúster para asignar el tráfico de la puerta de enlace a tu servicio de backend.
Para obtener más información sobre el recurso HTTPRoute, consulta Implementa el recurso HTTPRoute (para las Gateways internas) o Crea un recurso HTTPRoute (para las Gateways externas).
Para los fines de esta guía, te recomendamos que implementes una puerta de enlace y una HTTPRoute externas siguiendo los pasos que se indican en Crea una HTTPRoute. Cuando crees la HTTPRoute, usa la siguiente configuración de
yaml
y reemplazaHOST_NAME
por el nombre de host que deseas usar:# 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
Aplica el archivo a tu clúster:
kubectl apply -f httproute.yaml
- Verifica la configuración de GKE Gateway para confirmar que funciona según lo esperado.
- Obtén los detalles de la puerta de enlace con el siguiente comando:
kubectl get gateway global-ext-lb1
El resultado debería ser similar al ejemplo siguiente:
NAME CLASS ADDRESS PROGRAMMED AGE global-ext-lb1 gke-l7-global-external-managed 34.54.193.72 True 11d
Confirma que se haya asignado una dirección IP a la puerta de enlace y que el valor de
PROGRAMMED
seaTrue
. - Describe la puerta de enlace para confirmar que la ruta esté adjunta:
kubectl describe gateway global-ext-lb1
El resultado debería ser similar al siguiente:
... Listeners: Attached Routes: 1 Conditions: Last Transition Time: 2024-10-03T03:10:17Z ...
Confirma que el valor de
Attached Routes
sea1
, lo que indica que la ruta está adjunta. - Envía una solicitud a la puerta de enlace:
curl http://GATEWAY_IP_ADDRESS/get \ -H "Host: HOST_NAME"
Aquí:
GATEWAY_IP_ADDRESS
es la dirección IP de la puerta de enlace. Puedes recuperar la dirección IP de la puerta de enlace con el siguiente comando, en el queGATEWAY_NAME
es el nombre de la puerta de enlace:kubectl get gateways.gateway.networking.k8s.io GATEWAY_NAME -o=jsonpath="{.status.addresses[0].value}"
HOST_NAME
es el nombre de host definido en elHTTPRoute
de la puerta de enlace. Puedes recuperarHOST_NAME
con el siguiente 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 respuesta debería ser similar a la siguiente:
{ "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" }
- Obtén los detalles de la puerta de enlace con el siguiente comando:
¿Qué sigue?
Obtén más información para instalar el operador de APIM.