Étape 1 : Exposer la passerelle d'entrée Apigee

Cette étape explique comment configurer le service Kubernetes pour votre passerelle d'entrée Apigee. Le service Kubernetes est nécessaire pour chaque déploiement d'entrée afin d'obtenir une adresse IP pouvant être exposée. Les appels client aux proxys invoquent un nom d'hôte qui résout cette adresse IP.

Options pour les services Kubernetes pour votre passerelle d'entrée Apigee

Deux options permettent de fournir un service Kubernetes pour attribuer l'adresse IP :

Créer votre propre service Kubernetes

Pour les environnements de production, Apigee vous recommande de créer un service Kubernetes personnalisé pour chaque passerelle d'entrée.

  • Apigee supprime le service par défaut, mais ne supprime pas le service Kubernetes personnalisé lors du nettoyage. Par conséquent, l'adresse IP ne sera pas libérée lors de la réinstallation d'Apigee hybrid.
  • Pour les plates-formes qui ne sont pas sur Google Cloud, telles que EKS, AKS et OpenShift, vous devez personnaliser le service Kubernetes pour qu'il fonctionne avec le fournisseur cloud. Il est donc préférable de créer un service Kubernetes personnalisé plutôt que d'utiliser le service par défaut, car Apigee n'est pas compatible avec toutes les personnalisations du service Kubernetes par défaut.

Procédez comme suit pour configurer et acheminer le trafic vers la nouvelle passerelle d'entrée.

  1. Créez un service Kubernetes avec les étiquettes de sélecteur de pod requises, app, ingress_name et org. Ces étiquettes sont déjà présentes dans les pods de passerelle d'entrée Apigee.

    Créez un fichier de service à l'aide du modèle suivant :

    apiVersion: v1
    kind: Service
    metadata:
      name: SERVICE_NAME
      namespace: apigee
    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 est un nom utilisé pour identifier ce service. Par exemple, apigee-prod-1.
    • INGRESS_NAME est le nom de cette passerelle d'entrée Apigee. Il doit correspondre au nom que vous avez fourni pour ingressGateways.name dans votre fichier overrides.yaml. Pour en savoir plus, consultez la section ingressGateways dans la documentation de référence sur les propriétés de configuration.
    • ORG_NAME est le nom de l'organisation Apigee. Il doit correspondre au nom que vous avez fourni pour org dans votre fichier overrides.yaml. Pour en savoir plus, consultez la section org dans la documentation de référence sur les propriétés de configuration.
    • LOAD_BALANCER_IP est l'adresse IP de l'équilibreur de charge.

      Si vous disposez d'une adresse IP réservée pour votre équilibreur de charge, saisissez-la.

      Si vous n'avez pas encore d'adresse IP réservée, vous pouvez utiliser celle renvoyée par le service d'entrée Apigee par défaut. Utilisez la valeur EXTERNAL-IP renvoyée par la commande suivante :

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

    La passerelle d'entrée Apigee expose les ports suivants :

    Port Description
    443 Trafic d'exécution.
    15021 Vérification d'état status-port expose un point de terminaison /healthz/ready pouvant être utilisé avec les vérifications d'état de GKE Ingress.
  2. Créez le service en appliquant le fichier SERVICE_FILENAME.yaml :
    kubectl apply -f SERVICE_FILENAME.yaml
  3. Recherchez l'adresse IP externe de la passerelle d'entrée Apigee à l'aide de la commande suivante :
    kubectl get svc -n apigee SERVICE_NAME

    Le résultat doit se présenter sous la forme suivante :

    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. Désactivez l'équilibreur de charge pour le service de passerelle d'entrée Apigee par défaut :
    1. Mettez à jour la propriété ingressGateways[].svcType vers ClusterIP dans votre fichier de remplacement :
      ingressGateways:
        svcType: ClusterIP
    2. Mettez à niveau le chart apigee-org pour appliquer les modifications :
      helm upgrade ORG_NAME apigee-org/ \
        --install \
        --namespace apigee \
        --atomic \
        -f overrides.yaml
      

    Pour plus d'informations, consultez la page Désactiver l'équilibreur de charge pour le service de passerelle d'entrée Apigee par défaut.

  5. Testez la passerelle d'entrée en effectuant un appel de vérification d'état.

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

    Lieu

    Si l'opération réussit, la commande renvoie le résultat suivant :

    Apigee Ingress is healthy
  6. Utilisez cette adresse IP pour mettre à jour votre enregistrement DNS (généralement un enregistrement A ou CNAME) auprès de votre bureau d'enregistrement ou de votre fournisseur DNS.

Utiliser le service Kubernetes par défaut

Pour les environnements hors production ou pour tester le trafic initial via la passerelle d'entrée Apigee, Apigee hybrid fournit le service Kubernetes par défaut pour chaque déploiement d'entrée.

Vous pouvez apporter des modifications limitées à la configuration du service par défaut dans votre fichier overrides.yaml. Pour connaître les options de configuration disponibles, consultez la section Gérer la passerelle d'entrée Apigee. Par exemple, vous pouvez ajouter des annotations.

Pour les environnements de production, il est recommandé de fournir un service Kubernetes pour l'entrée. Suivez la procédure décrite dans la section Créer votre propre service Kubernetes.

  1. Recherchez l'adresse IP externe du service d'entrée Apigee par défaut à l'aide de la commande suivante :
    kubectl get svc -n apigee -l app=apigee-ingressgateway

    Le résultat doit se présenter sous la forme suivante :

    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. Testez la passerelle d'entrée en effectuant un appel de vérification d'état.

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

    Lieu

    Si l'opération réussit, la commande renvoie le résultat suivant :

    Apigee Ingress is healthy
  3. Utilisez cette adresse IP pour mettre à jour votre enregistrement DNS (généralement un enregistrement A ou CNAME) auprès de votre bureau d'enregistrement ou de votre fournisseur DNS.

Étape suivante

1 (SUIVANT) Étape 2 : Déployer un proxy