Comment définir Ingress dans GKE, avec les conteneurs Spring Cloud Netflix

Aug 16 2020

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

1 TudorGrigoriu Aug 19 2020 at 17:49

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é

ArghyaSadhu Aug 16 2020 at 00:24

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