Paso 1: Expón la pasarela de entrada de Apigee

En este paso se explica cómo configurar el servicio de Kubernetes para tu pasarela de entrada de Apigee. El servicio de Kubernetes es necesario para que cada implementación de entrada obtenga una dirección IP que se pueda exponer. Las llamadas de clientes a proxies invocarán un nombre de host que se resolverá en esta dirección IP.

Opciones de servicios de Kubernetes para tu pasarela de entrada de Apigee

Hay dos opciones para proporcionar un servicio de Kubernetes que asigne la dirección IP ...

Crear tu propio servicio de Kubernetes

En los entornos de producción, Apigee recomienda crear un servicio de Kubernetes personalizado para cada pasarela de entrada.

  • Apigee elimina el servicio predeterminado, pero no el servicio de Kubernetes personalizado al limpiar. Por lo tanto, la dirección IP no se liberará al reinstalar Apigee hybrid.
  • En las plataformas que no están en 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 de Kubernetes personalizado que usar el servicio predeterminado, ya que Apigee no admite todas las personalizaciones del servicio de Kubernetes predeterminado.

Sigue estos pasos para configurar y enrutar el tráfico a la nueva pasarela de entrada.

  1. Crea un servicio de Kubernetes con las etiquetas de selector de pods necesarias: app, ingress_name y org. Estas etiquetas ya están presentes en los pods de la pasarela 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 pasarela de entrada de Apigee. Debe coincidir con el nombre que haya proporcionado para ingressGateways.name en su archivo overrides.yaml. Para obtener más información, consulta ingressGateways en la referencia de propiedades de configuración.
    • ORG_NAME es el nombre de la organización de Apigee. Debe coincidir con el nombre que haya proporcionado para org en su archivo overrides.yaml. Para obtener más información, consulta org en la referencia de propiedades de configuración.
    • LOAD_BALANCER_IP es la dirección IP del balanceador de carga.

      Si tienes una dirección IP reservada para tu balanceador de carga, introdúcela.

      Si aún no tienes una dirección IP reservada, puedes usar la que devuelve el servicio de entrada predeterminado de Apigee. Usa el EXTERNAL-IP devuelto por el siguiente comando:

      kubectl get svc -n APIGEE_NAMESPACE -l app=apigee-ingressgateway

    La pasarela de entrada de Apigee expone los siguientes puertos:

    Puerto Descripción
    443 Tráfico en tiempo de ejecución.
    15021 Comprobación del estado. status-port expone un endpoint /healthz/ready que se puede usar con las comprobaciones de estado de GKE Ingress.
  2. Crea el servicio aplicando el SERVICE_FILENAME.yaml:
    kubectl apply -f SERVICE_FILENAME.yaml
  3. Busca la IP externa de la pasarela de entrada de Apigee con el siguiente comando:
    kubectl get svc -n APIGEE_NAMESPACE SERVICE_NAME

    La salida debería tener un aspecto similar a este:

    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
  4. Inhabilita el balanceador de carga del servicio de pasarela de entrada de Apigee predeterminado:
    1. Actualiza la propiedad ingressGateways[].svcType a ClusterIP en el archivo de anulaciones:
      ingressGateways:
        svcType: ClusterIP
    2. Actualiza el gráfico apigee-org para aplicar los cambios:
      helm upgrade ORG_NAME apigee-org/ \
        --install \
        --namespace apigee \
        --atomic \
        -f overrides.yaml
      

    Para obtener más información, consulte Inhabilitar el balanceador de carga del servicio de puerta de enlace de entrada de Apigee predeterminado.

  5. Prueba la pasarela de entrada haciendo una llamada de comprobación del estado.

    curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \
      --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"

    Dónde

    • DOMAIN es el dominio que has proporcionado como nombre de host del grupo de entorno que has creado en el Paso 3: Crea un grupo de entorno de la sección "Configuración del proyecto y de la organización".
    • INGRESS_IP_ADDRESS es la dirección IP de entrada, por ejemplo, 233.252.0.123.

    Si la acción se realiza correctamente, el comando mostrará lo siguiente:

    Apigee Ingress is healthy
  6. Usa esta dirección IP para actualizar tu registro DNS (normalmente, un registro A o CNAME) en tu registrador o proveedor de DNS.

Usar el servicio de Kubernetes predeterminado

En 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 de Kubernetes predeterminado para cada despliegue de entrada.

Puedes hacer cambios de configuración limitados en el servicio predeterminado en tu archivo overrides.yaml. Para ver las opciones de configuración disponibles, consulta Gestionar la puerta de enlace de entrada de Apigee. Por ejemplo, puedes añadir anotaciones.

En los entornos de producción, se recomienda que proporcione un servicio de Kubernetes para el tráfico de entrada. Sigue los pasos que se indican en Crear tu propio servicio de Kubernetes.

  1. 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

    La salida debería tener un aspecto similar a este:

    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
  2. Prueba la pasarela de entrada haciendo una llamada de comprobación del estado.

    curl -H 'User-Agent: GoogleHC' https://DOMAIN/healthz/ingress -k \
      --resolve "DOMAIN:443:INGRESS_IP_ADDRESS"

    Dónde

    • DOMAIN es el dominio que has proporcionado como nombre de host del grupo de entorno que has creado en el Paso 3: Crea un grupo de entorno de la sección "Configuración del proyecto y de la organización".
    • INGRESS_IP_ADDRESS es la dirección IP de entrada, por ejemplo, 233.252.0.123.

    Si la acción se realiza correctamente, el comando mostrará lo siguiente:

    Apigee Ingress is healthy
  3. Usa esta dirección IP para actualizar tu registro DNS (normalmente, un registro A o CNAME) en tu registrador o proveedor de DNS.

Paso siguiente

1 (SIGUIENTE) Paso 2: Implementar un proxy