Как определить Ingress в GKE с контейнерами Spring Cloud Netflix

Aug 16 2020

У меня микросервисная архитектура, построенная на Spring Cloud Netflix:

  • бизнес-владелец-сервис указывает на приложение Spring Boot, которое работает на порту 8763. Перенаправление портов выполнено, бизнес-владелец-сервис: 80 перенаправляет на порт 8763.
  • customer-service указывает на приложение Spring Boot, которое работает на порту 8766. customer-service: 80 -> 8766

Архитектура работает правильно, если я вызываю ее через шлюз Spring Cloud Zuul, но я хочу настроить Ingress.

Моя точная конфигурация следующая:

  • входить

  • конфигурация входящего пути

Проблема в том, что на входе все серверные службы работают неработоспособно, и я не знаю, что делаю не так. Что мне нужно сделать, чтобы Ingress работал?

Изменить: в комментариях я попытался определить readinessProbe для модуля обслуживания клиентов следующим образом:

Это не работает, и когда я пытаюсь дважды проверить обновленную конфигурацию, readinessProbe не отображается. Я думаю, что это ошибка, но я не уверен, как проверить, обновлен ли зонд или нет.

Кроме того, GET активатора / здоровья работает через шлюз Zuul:

Ответы

1 TudorGrigoriu Aug 19 2020 at 17:49

Решением в моем случае стала конфигурация проверки работоспособности, а не readinessProbe. Я обновил проверку работоспособности, которая автоматически создавалась для входных внутренних служб, чтобы она указывала на / actator / health. Это сработало

ArghyaSadhu Aug 16 2020 at 00:24

Контроллер входящего трафика GKE выполняет проверку работоспособности с помощью проверки готовности, определенной в развертывании модуля. Добавьте датчик готовности, как показано ниже, с помощью привода пружинного кожуха.

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