Come definire Ingress in GKE, con i contenitori Netflix Spring Cloud
Ho un'architettura di microservizi, basata su Spring Cloud Netflix:
- business-owner-service punta a un'app Spring Boot che viene eseguita sulla porta 8763. Il port forwarding viene eseguito, business-owner-service: 80 reindirizza alla porta 8763.
- il servizio clienti punta a un'app Spring Boot che gira sulla porta 8766. servizio clienti: 80 -> 8766
L'architettura funziona correttamente se la richiamo tramite il gateway Spring Cloud Zuul ma desidero configurare un Ingress.
La mia configurazione esatta è la seguente:
ingresso
configurazione del percorso di ingresso

Il problema è che l'ingresso ha tutti i servizi di backend su malsano e non so cosa sto facendo di sbagliato. Cosa devo fare per avere un Ingress funzionante?
Modifica: per commenti, ho provato a definire readinessProbe, per il pod del servizio clienti, come segue:

Questo non funziona e quando provo a ricontrollare la configurazione aggiornata, readinessProbe non è visibile. Penso che questo sia un bug, ma non sono sicuro di come verificare che la sonda sia aggiornata o meno.
Inoltre, l'attuatore / salute GET sta funzionando attraverso il gateway Zuul:

Risposte
Ciò che è finito per essere la soluzione nel mio caso è stata la configurazione del controllo dello stato, non readinessProbe. Ho aggiornato il controllo di integrità che è stato creato automaticamente per i servizi di backend in ingresso in modo che puntino a / Actuator / Health. Questo ha funzionato
Il controller di ingresso GKE esegue il controllo dell'integrità con il probe di disponibilità definito nella distribuzione del pod. Aggiungere una sonda di prontezza come di seguito utilizzando l'attuatore con avvio a molla
spec:
containers:
- name: name
readinessProbe:
httpGet:
port: 8080
path: /actuator/health
initialDelaySeconds: 10