Spring Cloud Netflix 컨테이너를 사용하여 GKE에서 Ingress를 정의하는 방법

Aug 16 2020

마이크로 서비스 아키텍처가 있으며 Spring Cloud Netflix를 기반으로합니다.

  • business-owner-service는 포트 8763에서 실행되는 Spring Boot 앱을 가리 킵니다. 포트 전달이 완료되고 business-owner-service : 80은 포트 8763으로 리디렉션됩니다.
  • customer-service는 포트 8766에서 실행되는 Spring Boot 앱을 가리 킵니다. customer-service : 80-> 8766

Spring Cloud Zuul 게이트웨이를 통해 호출하면 아키텍처가 올바르게 실행되지만 Ingress를 설정하고 싶습니다.

내 정확한 구성은 다음과 같습니다.

  • 입구

  • 수신 경로 구성

문제는 수신에 비정상적인 모든 백엔드 서비스가 있고 내가 뭘 잘못하고 있는지 모르겠다는 것입니다. Ingress가 작동하려면 어떻게해야합니까?

편집 : 의견에 따라 다음과 같이 고객 서비스 포드에 대해 readinessProbe를 정의하려고했습니다.

이것은 작동하지 않으며 업데이트 된 구성을 다시 확인하려고하면 readinessProbe가 표시되지 않습니다. 나는 이것이 버그라고 생각하지만 프로브가 업데이트되었는지 확인하는 방법을 모르겠습니다.

또한 액추에이터 / 상태 GET은 Zuul 게이트웨이를 통해 실행됩니다.

답변

1 TudorGrigoriu Aug 19 2020 at 17:49

필자의 경우 솔루션이 된 것은 readinessProbe가 아닌 상태 확인 구성이었습니다. 수신 백엔드 서비스가 / actuator / health를 가리 키도록 자동으로 생성 된 상태 확인을 업데이트했습니다. 이것은 효과가 있었다

ArghyaSadhu Aug 16 2020 at 00:24

GKE 인 그레스 컨트롤러 는 포드 배포에 정의 된 준비 프로브로 상태 확인을 수행 합니다. 스프링 부트 액추에이터를 사용하여 아래와 같이 준비 프로브를 추가합니다.

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