Paso 1: Expón la puerta de enlace de entrada de Apigee

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

  1. Crea un servicio de Kubernetes con las etiquetas obligatorias del selector de Pods, app, ingress_name y org. 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 archivo overrides.yaml. Para obtener más información, consulta ingressGateways 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 archivo overrides.yaml. Para obtener más información, consulta org 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.
  2. Para crear el servicio, aplica SERVICE_FILENAME.yaml:
    kubectl apply -f SERVICE_FILENAME.yaml
  3. 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
  4. Inhabilita el balanceador de cargas para el servicio de puerta de enlace de entrada de Apigee predeterminado:
    1. Actualiza la propiedad ingressGateways[].svcType a ClusterIP en tu 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
      

    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.

  5. 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"

    Donde

    Si se ejecuta de forma correcta, el comando mostrará lo siguiente:

    Apigee Ingress is healthy
  6. Usa esta dirección IP para actualizar tu registro DNS (por lo general, un registro A o CNAME) 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.

  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

    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
  2. 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"

    Donde

    Si se ejecuta de forma correcta, el comando mostrará lo siguiente:

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

Próximo paso

1 (A CONTINUACIÓN) Paso 2: Implementa un proxy