HTTPS-запросы на вход GKE ERR_TIMEDOUT

#kubernetes #https #dns #google-kubernetes-engine #kubernetes-ingress

#kubernetes #https #dns #google-kubernetes-engine #kubernetes-вход

Вопрос:

У меня есть микросервисная архитектура (реализованная в Spring Boot), развернутая в Google Kubernetes Engine. Для этой микросервисной архитектуры я настроил следующее:

  • домен: comanddev.tk (бесплатный домен от Freenom) введите описание изображения здесь

  • сертификат для этого домена

  • следующая конфигурация входа: введите описание изображения здесь

Проблема в том, что когда я вызываю URL, который, как я знаю, должен работатьhttps://comanddev.tk/customer-service/actuator/health , я получаю ответ ERR_TIMEDOUT. Я проверил контроллер входа, и я не получаю никаких запросов при входе, хотя перенаправление URL настроено.

Обновление: я попытался установить «склеивающую запись», как на следующем рисунке, и получаю ответ, что сертификат недействителен (у меня есть сертификат для comanddev.tk нет dev.comanddev.tk ) и я получаю 401 после согласия на доступ к незащищенному URL. введите описание изображения здесь

Комментарии:

1. Вы используете Nginx Ingress или GCP Ingress? Какую версию GKE вы используете. В чем именно заключается ошибка? Не могли бы вы предоставить свои YAMLS? Вы настроили брандмауэр?

2. Я думаю, @PjoterS GCP-вход. GKE 1.15.12-gke. 2. Ошибка — это та, о которой уже говорилось. что именно из YAML и на какой YAML вы ссылаетесь? Как настроить брандмауэр?

3. Когда я $ curl -IL http://comanddev.tk/customer-service/actuator/health получаю ответ. Также вы используете nginx ingress . Пожалуйста, предоставьте более подробную информацию. Как вы создавали сертификаты, весь ваш Ingress YAML (без личных данных). Открыт ли у вас порт HTTPS? Вы следовали этим документам или использовали стороннее программное обеспечение?

Ответ №1:

Я немного покопался в этом.

Как я уже упоминал, когда вы $ curl -IL http://comanddev.tk/customer-service/actuator/health получите nginx ingress ответ.

Поскольку домен перехватывает запрос и перенаправляет на сервер назначения, я не уверен, есть ли смысл использовать TLS.

Я бы посоветовал вам использовать nameserver вместо URL Forwarding просто использовать IP из вашего Ingress . В этом варианте вы перенаправили бы запрос на свой вход. Когда вы используете, Port Forwarding вы используете Freenom redirection , и я не уверен, как это обрабатывается на их стороне.

Комментарии:

1. Привет @PjoterS и спасибо за проявленный интерес. У меня все еще нет решения. Я обновил информацию о том, что произойдет после того, как я попробую ваш способ. По-прежнему не работает, я получаю 401

2. Хорошая часть в том, что я вижу запросы, поступающие в loadbalancer, я вижу журналы. Но я не понимаю, почему я получаю 401

3. URL, который я пытаюсь найти, является: dev.comanddev.tk/customer-service/actuator/health Это не ограничено и должно обеспечить действительный ответ

4. Установите уровень журнала отладки в одном из микросервисов, и /actuator / health придет и вернет 200 OK, но Ingress вернет 401. Я не знаю, как проверить, почему он возвращает 401