Как определить Ingress в GKE с контейнерами Spring Cloud Netflix
У меня микросервисная архитектура, построенная на 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:
Ответы
Решением в моем случае стала конфигурация проверки работоспособности, а не readinessProbe. Я обновил проверку работоспособности, которая автоматически создавалась для входных внутренних служб, чтобы она указывала на / actator / health. Это сработало
Контроллер входящего трафика GKE выполняет проверку работоспособности с помощью проверки готовности, определенной в развертывании модуля. Добавьте датчик готовности, как показано ниже, с помощью привода пружинного кожуха.
spec:
containers:
- name: name
readinessProbe:
httpGet:
port: 8080
path: /actuator/health
initialDelaySeconds: 10