Jak zdefiniować Ingress w GKE za pomocą kontenerów Spring Cloud Netflix

Aug 16 2020

Mam architekturę mikrousług zbudowaną na Spring Cloud Netflix:

  • business-owner-service wskazuje na aplikację Spring Boot, która działa na porcie 8763. Przekierowanie portu jest zakończone, business-owner-service: 80 przekierowuje na port 8763.
  • Customer-service wskazuje na aplikację Spring Boot, która działa na porcie 8766. customer-service: 80 -> 8766

Architektura działa poprawnie, jeśli wywołam ją przez bramę Spring Cloud Zuul, ale chcę skonfigurować Ingress.

Moja dokładna konfiguracja jest następująca:

  • ingres

  • konfiguracja ścieżki wejściowej

Problem polega na tym, że ruch przychodzący ma wszystkie usługi backendu w złym stanie i nie wiem, co robię źle. Co muszę zrobić, aby mieć działający Ingress?

Edycja: Zgodnie z komentarzami próbowałem zdefiniować gotowość, dla modułu obsługi klienta, w następujący sposób:

To nie działa, a kiedy próbuję dwukrotnie sprawdzić zaktualizowaną konfigurację, readinessProbe nie jest widoczny. Myślę, że to błąd, ale nie jestem pewien, jak sprawdzić, czy sonda jest zaktualizowana, czy nie.

Ponadto element wykonawczy / kondycja GET działa przez bramę Zuul:

Odpowiedzi

1 TudorGrigoriu Aug 19 2020 at 17:49

W moim przypadku rozwiązaniem okazała się konfiguracja kontroli stanu, a nie gotowość do pracy. Zaktualizowałem kontrolę stanu, która została automatycznie utworzona dla usług wewnętrznej bazy danych wejściowych, aby wskazywała na / siłownik / kondycję. To zadziałało

ArghyaSadhu Aug 16 2020 at 00:24

Kontroler GKE ruchu przychodzącego przeprowadza kontrolę stanu za pomocą sondy gotowości zdefiniowanej we wdrożeniu pod. Dodaj sondę gotowości, jak poniżej, używając siłownika sprężynowego

spec:
  containers:
    - name: name
      readinessProbe:
        httpGet:
          port: 8080
          path: /actuator/health
        initialDelaySeconds: 10