Почему мой межсервисный трафик c отображается в транзитном кластере в Киали - PullRequest
0 голосов
/ 06 мая 2020

У меня есть два кластера Istio, использующих реплицированную плоскость управления с запущенным Kiali. В каждом кластере у меня есть два приложения, которые взаимодействуют, но я не вижу трафика c между ними на панели инструментов Kiali. Вместо этого трафик c отображается как проходящий через транзитный кластер.

Приложение взаимодействует, используя имя сервиса kubernetes, и они взаимодействуют правильно, просто оно не отображается правильно в Kiali.

Есть мысли относительно того, в чем может быть проблема? Или это ожидаемое поведение (я еще новичок в Istio).

1 Ответ

1 голос
/ 06 мая 2020

Насколько мне известно, это ожидаемое поведение при использовании опции Passthrough. Ознакомьтесь с приведенной ниже ссылкой istiobyexample, которая точно показывает, как это работает.

Когда ALLOW_ANY включен, Istio использует кластер Envoy под названием PassthroughCluster, принудительно подключаемый прокси-сервером sidecar, для отслеживания исходящего трафика c.

Взгляните на kiali документацию об этом

Почему я вижу трафик c в PassthroughCluster?

Запросы, идущие в PassthroughCluster (или BlackHoleCluster ) - это запросы, которые не были перенаправлены на определенную службу или запись службы, а вместо этого попадают в один из этих встроенных обработчиков запросов Istio. Для получения дополнительной информации см. Мониторинг заблокированного и сквозного трафика внешних служб c.

Неожиданная маршрутизация к этим узлам не указывает на проблему Kiali, вы видите фактическую маршрутизацию, выполняемую Istio. Как правило, это происходит из-за неправильной конфигурации и / или отсутствия сопроводительной книги Istio. Реальная проблема с me sh возникает реже, но возможна, например, проблема syn c или удаленный модуль.

Используйте представление списка рабочих нагрузок Kiali, чтобы убедиться, что коляски не пропали. Используйте представление списка Kiali Istio Config для поиска любых ошибок проверки конфигурации.

И пример на istiobyexample.dev .

Вариант 1 - Сквозная передача

Для начала воспользуемся установкой Istio с опцией по умолчанию ALLOW_ANY для выхода. Это означает, что запросы idgen к httpbin разрешены без дополнительной настройки. Когда включен ALLOW_ANY, Istio использует кластер Envoy под названием PassthroughCluster, принудительно подключаемый прокси-сервером idgen, для отслеживания исходящего трафика. c.

Кластер Envoy - это серверный (или «восходящий») набор конечных точек, представляющий внешнюю службу. Прокси-сервер Envoy Sidecar от Istio применяет фильтры к перехваченным запросам из контейнера приложения. На основе этих фильтров Envoy отправляет трафик c на указанный маршрут c. Маршрут определяет кластер для отправки трафика c на.

Кластер Istio Passthrough настроен так, что серверная часть является исходным адресатом запроса . Таким образом, когда ALLOW_ANY включен для исходящего трафика c, Envoy будет просто «передавать» запрос idgen в httpbin.

В этой конфигурации, если мы отправляем запросы идентификатора рецепта через IngressGateway, idgen может успешно вызвать httpbin. Этот трафик c отображается как трафик PassthroughCluster c в графе службы Kiali - нам нужно добавить ServiceEntry, чтобы httpbin мог получить собственную телеметрию уровня обслуживания. (Мы сделаем это через мгновение.)

enter image description here

But if we drill down in Prometheus, and find the istio_total_requests metric, we can see that PassthroughCluster traffic is going to a destinationservice called httpbin.org.

введите описание изображения здесь

Надеюсь, вы найдете это полезным.

...