Esta página se aplica a Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
En esta página, se describe cómo crear un APIMExtensionPolicy
para crear la extensión de tráfico requerida en la puerta de enlace de Google Kubernetes Engine (GKE) que se ejecuta en tu clúster.
Antes de comenzar
Antes de comenzar con esta tarea, completa los siguientes pasos:
- Confirma que tu clúster de GKE tenga configurada Workload Identity. Consulta Crea una identidad de carga de trabajo para conocer los pasos necesarios.
- Confirma que tu clúster tenga una puerta de enlace de GKE configurada y en funcionamiento. Consulta Implementa Gateways para obtener más detalles.
- Instala el operador de Apigee para Kubernetes. Consulta Instala el operador de Apigee para Kubernetes para obtener instrucciones de instalación.
Roles requeridos
Si asignas los roles requeridos a tu cuenta de servicio como se describe en Instala el operador de Apigee para Kubernetes, no se requieren roles ni permisos de IAM adicionales para completar estas tareas.
Puedes optar por autorizar acciones en los recursos de tu clúster de Google Kubernetes Engine con el mecanismo de control de acceso basado en roles (RBAC) integrado en Kubernetes. Para obtener más información, consulta Autoriza acciones en clústeres con el control de acceso basado en roles.
Crea el APIMExtensionPolicy
En este paso, crearás el objeto APIMExtensionPolicy
y lo aplicarás a la puerta de enlace de GKE que se ejecuta en tu clúster.
Esta política rige todo el tráfico que pasa por la puerta de enlace y su HTTPRoutes
asociado, y funciona de manera similar a un flowhook a nivel del entorno en Apigee hoy en día.
Crea la política de extensión de APIM:
- Crea un archivo nuevo llamado
global-ext-lb1-apim-policy.yaml
en el espacio de nombresapim
. - Copia el siguiente contenido en el archivo nuevo:
# global-ext-lb1-apim-policy.yaml apiVersion: apim.googleapis.com/v1 kind: APIMExtensionPolicy metadata: name: global-ext-lb1-apim-policy namespace: apim spec: apigeeEnv: ENV_NAME # optional location: global failOpen: false timeout: 1000ms defaultSecurityEnabled: true targetRef: # identifies the Gateway where the extension should be applied name: global-ext-lb1 kind: Gateway namespace: default
Aquí, ENV_NAME es el nombre del entorno de Apigee creado en el paso de instalación Crea un entorno de Apigee.
Puedes ver todos los entornos disponibles en la página Apigee Environments de la consola de Google Cloud :
- Aplica la política:
kubectl -n apim apply -f global-ext-lb1-apim-policy.yaml
Una vez que se aplica la política, el operador de Apigee para Kubernetes crea recursos de redes en segundo plano.
- Verifica el estado de la política de extensión de APIM con el siguiente comando:
kubectl -n apim get APIMExtensionPolicy
El resultado debería ser similar al siguiente, con un
State
deRUNNING
:NAME STATE ERRORMESSAGE global-ext-lb1-apim-policy RUNNING
- Usa el siguiente comando para enviar 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.
- La solicitud debería fallar porque la seguridad predeterminada está habilitada estableciendo
defaultSecurityEnabled: true
en el recurso de política de extensión de la API. Deberías ver una respuesta similar a la siguiente:{"fault":{"faultstring":"Raising fault. Fault name : RF-insufficient-request-raise-fault","detail":{"errorcode":"steps.raisefault.RaiseFault"}}}
Esto indica que la política de extensión de Apigee está activa y que la aplicación de la clave de API y la verificación del token de acceso están activas.
¿Qué sigue?
- Obtén información para agregar políticas a la puerta de enlace de GKE.
- Obtén información para desinstalar el operador de Apigee para Kubernetes.