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 un service Kubernetes personnalisé pour chaque passerelle d'entrée Apigee (recommandé).
- Utiliser le service Kubernetes par défaut.
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.
- Créez un service Kubernetes avec les étiquettes de sélecteur de pod requises,
app
,ingress_name
etorg
. 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 fichieroverrides.yaml
. Pour en savoir plus, consultez la sectioningressGateways
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 fichieroverrides.yaml
. Pour en savoir plus, consultez la sectionorg
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. - SERVICE_NAME est un nom utilisé pour identifier ce service. Par exemple,
- Créez le service en appliquant le fichier
SERVICE_FILENAME.yaml
:kubectl apply -f SERVICE_FILENAME.yaml
- 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
-
Désactivez l'équilibreur de charge pour le service de passerelle d'entrée Apigee par défaut :
- Définissez la propriété
ingressGateways[].svcType
surClusterIP
dans votre fichier de remplacement :ingressGateways: svcType: ClusterIP
-
Appliquez les modifications à l'aide de la commande
apigeectl apply --org
.${APIGEECTL_HOME}/apigeectl apply -f ${HYBRID_FILES}/overrides/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.
- Définissez la propriété
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
- DOMAIN est le domaine que vous avez fourni comme nom d'hôte pour le groupe d'environnement que vous avez créé lors de la Configuration du projet et de l'organisation - Étape 3 : Créer un groupe d'environnements.
- INGRESS_IP_ADDRESS est l'adresse IP d'entrée, par exemple
233.252.0.123
.
Si l'opération réussit, la commande renvoie le résultat suivant :
Apigee Ingress is healthy
- Utilisez cette adresse IP pour mettre à jour votre enregistrement DNS (généralement un enregistrement
A
ouCNAME
) 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.
- 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
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
- DOMAIN est le domaine que vous avez fourni comme nom d'hôte pour le groupe d'environnement que vous avez créé lors de la Configuration du projet et de l'organisation - Étape 3 : Créer un groupe d'environnements.
- INGRESS_IP_ADDRESS est l'adresse IP d'entrée, par exemple
233.252.0.123
.
Si l'opération réussit, la commande renvoie le résultat suivant :
Apigee Ingress is healthy
- Utilisez cette adresse IP pour mettre à jour votre enregistrement DNS (généralement un enregistrement
A
ouCNAME
) auprès de votre bureau d'enregistrement ou de votre fournisseur DNS.