Comment définir Ingress dans GKE, avec les conteneurs Spring Cloud Netflix
J'ai une architecture de microservice, basée sur Spring Cloud Netflix:
- business-owner-service pointe vers une application Spring Boot qui s'exécute sur le port 8763. La redirection de port est effectuée, business-owner-service: 80 redirections vers le port 8763.
- le service client pointe vers une application Spring Boot qui s'exécute sur le port 8766. service client: 80 -> 8766
L'architecture fonctionne correctement si je l'invoque via la passerelle Spring Cloud Zuul mais que je souhaite configurer une entrée.
Ma configuration exacte est la suivante:
entrée
configuration du chemin d'entrée
Le problème est que l'entrée a tous les services backend sur malsain et je ne sais pas ce que je fais de mal. Que dois-je faire pour avoir une Ingress fonctionnelle?
Edit: Par commentaires, j'ai essayé de définir readinessProbe, pour le module de service client, comme suit:
Cela ne fonctionne pas, et lorsque j'essaie de vérifier la configuration mise à jour, readinessProbe n'est pas visible. Je pense que c'est un bug, mais je ne sais pas comment vérifier que la sonde est mise à jour ou non.
En outre, l'actionneur / l'état de santé GET fonctionne via la passerelle Zuul:
Réponses
Ce qui a fini par être la solution dans mon cas, c'est la configuration de la vérification de l'état, pas readinessProbe. J'ai mis à jour la vérification de l'état qui a été créée automatiquement pour que les services de backend d'entrée pointent vers / actuator / health. Cela a fonctionné
Le contrôleur d'entrée GKE effectue une vérification de l'état avec la sonde de préparation définie dans le déploiement du pod. Ajoutez une sonde de disponibilité comme ci-dessous à l'aide d'un actionneur à ressort
spec:
containers:
- name: name
readinessProbe:
httpGet:
port: 8080
path: /actuator/health
initialDelaySeconds: 10