En este paso, se explica cómo configurar el servicio de Kubernetes para la puerta de enlace de entrada de Apigee. El servicio de Kubernetes es necesario para cada implementación de entrada a fin de obtener una dirección IP que se pueda exponer. Las llamadas de clientes a los proxies invocarán un nombre de host que se resolverá en esta dirección IP.
Opciones para los servicios de Kubernetes para la puerta de enlace de entrada de Apigee
Existen dos opciones para proporcionar un servicio de Kubernetes a fin de asignar la dirección IP ...
- Crea un servicio de Kubernetes personalizado para cada puerta de enlace de entrada de Apigee (recomendado).
- Usa el servicio predeterminado de Kubernetes.
Crea tu propio servicio de Kubernetes
En entornos de producción, Apigee recomienda que crees un servicio personalizado de Kubernetes para cada puerta de enlace de entrada.
- Apigee borra el servicio predeterminado, pero no borra el servicio de Kubernetes personalizado durante la limpieza. Por lo tanto, la dirección IP no se liberará cuando se reinstale Apigee Hybrid.
- En plataformas ajenas a Google Cloud, como EKS, AKS y OpenShift, debes personalizar el servicio de Kubernetes para que funcione con el proveedor de servicios en la nube. Por lo tanto, es mejor crear un servicio personalizado de Kubernetes que usar el servicio predeterminado, ya que Apigee no admite todas las personalizaciones para el servicio predeterminado de Kubernetes.
Sigue estos pasos para configurar y enrutar el tráfico a la puerta de enlace de entrada nueva.
- Crea un servicio de Kubernetes con las etiquetas obligatorias del selector de Pods,
app
,ingress_name
yorg
. Estas etiquetas ya están presentes en los Pods de la puerta de enlace de entrada de Apigee.Crea un archivo de servicio con la siguiente plantilla:
apiVersion: v1 kind: Service metadata: name: SERVICE_NAME namespace: APIGEE_NAMESPACE spec: ports: - name: status-port port: 15021 protocol: TCP targetPort: 15021 - name: https port: 443 protocol: TCP targetPort: 8443 selector: app: apigee-ingressgateway #required ingress_name: INGRESS_NAME org: ORG_NAME type: LoadBalancer loadBalancerIP: LOAD_BALANCER_IP
- SERVICE_NAME es un nombre que se usa para identificar este servicio. Por ejemplo,
apigee-prod-1
. - INGRESS_NAME es el nombre de esta puerta de enlace de entrada de Apigee. Debe coincidir con el nombre que proporcionaste para
ingressGateways.name
en tu archivooverrides.yaml
. Para obtener más información, consultaingressGateways
en la referencia de la propiedad de configuración. - ORG_NAME es el nombre de la organización de Apigee. Debe coincidir con el nombre que proporcionaste para
org
en tu archivooverrides.yaml
. Para obtener más información, consultaorg
en la referencia de la propiedad de configuración. - LOAD_BALANCER_IP es la dirección IP del balanceador de cargas.
Si tienes una dirección IP reservada para tu balanceador de cargas, ingrésala.
Si aún no tienes una dirección IP reservada, puedes usar la que muestra el servicio de entrada predeterminado de Apigee. Usa la
EXTERNAL-IP
que muestra el siguiente comando:kubectl get svc -n APIGEE_NAMESPACE -l app=apigee-ingressgateway
La puerta de enlace de entrada de Apigee expone los siguientes puertos:
Puerto Descripción 443 Tráfico del entorno de ejecución. 15021 Verificación de estado. status-port
expone un extremo/healthz/ready
que se puede usar con verificaciones de estado de entrada de GKE. - SERVICE_NAME es un nombre que se usa para identificar este servicio. Por ejemplo,
- Para crear el servicio, aplica
SERVICE_FILENAME.yaml
:kubectl apply -f SERVICE_FILENAME.yaml
- Busca la IP externa de la puerta de enlace de entrada de Apigee con el siguiente comando:
kubectl get svc -n APIGEE_NAMESPACE SERVICE_NAME
Deberías obtener un resultado similar al siguiente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
-
Inhabilita el balanceador de cargas para el servicio de puerta de enlace de entrada de Apigee predeterminado:
- Actualiza la propiedad
ingressGateways[].svcType
aClusterIP
en tu archivo de anulaciones:ingressGateways: svcType: ClusterIP
-
Actualiza el gráfico
apigee-org
para aplicar los cambios:helm upgrade ORG_NAME apigee-org/ \ --install \ --namespace apigee \ --atomic \ -f overrides.yaml
Consulta Inhabilita el balanceador de cargas para el servicio de puerta de enlace de entrada de Apigee predeterminado a fin de obtener más información.
- Actualiza la propiedad
Prueba la puerta de enlace de entrada mediante una llamada de verificación de estado.
curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Dónde
- DOMAIN es el dominio que proporcionaste como nombre de host para el grupo de entornos que creaste en Configuración del proyecto y la organización. Paso 3: Crea un grupo de entornos.
- INGRESS_IP_ADDRESS es la dirección IP de entrada, por ejemplo,
233.252.0.123
.
Si se ejecuta de forma correcta, el comando mostrará lo siguiente:
Apigee Ingress is healthy
- Usa esta dirección IP para actualizar tu registro DNS (por lo general, un registro
A
oCNAME
) en tu registrador o proveedor de DNS.
Usa el servicio predeterminado de Kubernetes
Para entornos que no son de producción o para probar el tráfico inicial a través de la puerta de enlace de entrada de Apigee, Apigee Hybrid proporciona un servicio predeterminado de Kubernetes para cada implementación de entrada.
Puedes realizar cambios de configuración limitados en el servicio predeterminado en tu archivo overrides.yaml
. Para ver las opciones de configuración disponibles, consulta Administra la puerta de enlace de entrada de Apigee. Por ejemplo, puedes agregar anotaciones.
Para entornos de producción, se recomienda proporcionar un servicio de Kubernetes para la entrada. Sigue los pasos de la página sobre cómo crear tu propio servicio de Kubernetes.
- Busca la IP externa del servicio de entrada predeterminado de Apigee con el siguiente comando:
kubectl get svc -n APIGEE_NAMESPACE -l app=apigee-ingressgateway
Deberías obtener un resultado similar al siguiente:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE apigee-ingressgateway-prod-hybrid-37a39bd LoadBalancer 192.0.2.123 233.252.0.123 15021:32049/TCP,80:31624/TCP,443:30723/TCP 16h
Prueba la puerta de enlace de entrada mediante una llamada de verificación de estado.
curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \ --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"
Dónde
- DOMAIN es el dominio que proporcionaste como nombre de host para el grupo de entornos que creaste en Configuración del proyecto y la organización. Paso 3: Crea un grupo de entornos.
- INGRESS_IP_ADDRESS es la dirección IP de entrada, por ejemplo,
233.252.0.123
.
Si se ejecuta de forma correcta, el comando mostrará lo siguiente:
Apigee Ingress is healthy
- Usa esta dirección IP para actualizar tu registro DNS (por lo general, un registro
A
oCNAME
) en tu registrador o proveedor de DNS.