Может ли посланник в istio отслеживать внешний https api? - PullRequest
2 голосов
/ 27 января 2020

Мы используем istio для использования распределенной трассировки. Нашим микросервисам иногда приходится обращаться к внешним API, которые обычно взаимодействуют через https.

. Чтобы измерить точную производительность всей системы, мы хотим отслеживать связь при обращении к внешнему API.
Однако распределенная трассировка требует доступа к заголовку запроса, но https не разрешает доступ, потому что заголовок зашифрован.
Для подтверждения я развернул bookinfo на GKE с включенным istio, вошел в контейнер productpage модуля productpage и выполнил следующую команду .

$ curl http://google.com
$ curl https://google.com

На zipkin была показана только http-связь.

Можно ли получить серию трассировок, включая API-интерфейсы, использующие внешний https?

Ответы [ 2 ]

0 голосов
/ 30 января 2020

На основе документации посланника он не поддерживает трассировку https.

Конфигурация трассировки задает глобальные параметры для трассировщика HTTP, используемого Envoy. Конфигурация определяется полем трассировки Bootstrap. В будущем Envoy может поддерживать другие трассировщики, но сейчас поддерживается только трассировка HTTP.

И этот пост о stackoverflow

HTTPS (HTTP поверх SSL) отправляет весь HTTP-контент по SSL-туннелю, поэтому HTTP-контент и заголовки также шифруются.

Я даже пытался воспроизвести это, но, как в вашем случае, работал только zipkin для http.

Исходя из этого, я бы сказал, что использовать zipkin для отслеживания https невозможно.

0 голосов
/ 27 января 2020

Вы должны использовать выход-шлюз . Когда все внешние вызовы go к шлюзу, istio может получить метаданные и выполнить некоторые операции трассировки. Использование входного / выходного шлюза имеет много преимуществ:

  • Повышение безопасности: мы можем настроить все правила безопасности на шлюзе.
  • Абстракция логики приложения c: вместо настройка параметров на каждом микросервисе.
  • Обработка TLS. Как и в приведенном выше примере, посланник может иметь все необходимые данные в запросах HTTPS.
...