Как настроить Azure App Gateway в Istio - PullRequest
0 голосов
/ 07 февраля 2020

У меня есть настройка приложения на AKS (Azure Kubernetes Service), и в настоящее время я использую Azure Шлюз приложений в качестве входного ресурса для моего приложения, работающего на AKS.

Теперь после настройки ISTIO для В моем кластере графики подходят хорошо, кроме одной части. Поскольку шлюз Azure APP неизвестен ISTIO, он показывает ресурс как «неизвестный». Я даже попытался запустить виртуальный сервис и указал на входной ресурс, но это не повлияло на график. Как мне установить sh для ISTIO, что это Azure шлюз приложения, а не «неизвестный» ресурс.

enter image description here

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Это потому, что Azure Шлюз приложений не является частью Istio Me sh. В зависимости от того, как у вас настроен Azure Application Gateway, вы можете даже не получить никаких преимуществ от использования istio.

Получение istio для работы с Azure Application Gateway намного сложнее, чем кажется.

Существует проблема Github , в которой одновременно используются istio и Azure Application Gateway.

Со следующим утверждением:

Вы можете Интересно, почему я решил поместить входной ресурс в пространство имен istio-system. Я делаю это, потому что в моем понимании istio-вход должен быть конечной точкой для каждого перенаправления шлюза приложения. Если бы я позволил перенаправить его на службу эхо-сервера, AGKI (application-gateway-kubernetes-ingress) указывал бы на ip-адрес развернутого модуля, что полностью игнорировало бы ist ios serviceme sh.

Поэтому, если у вас еще нет такой конфигурации, и вы хотите использовать Istio, я предлагаю установить Istio Ingress Gateway в качестве конечной точки для вашего Azure Application Gateway и рассматривать его как traffi c, поступающий извне me sh.


Вот объяснение, почему Azure Шлюз приложений является «неизвестным» ресурсом.

В статье этой вы можете найти следующее утверждение:

Входной трафик c

Истио ожидает трафик c до go через входной шлюз. Когда вы видите «неизвестный» трафик c, это может быть просто случай, когда вы используете стандартный вход Kubernetes или маршрут OpenShift для отправки траффи c извне в Istio.

Azure Шлюз приложений использует пользовательский входной контроллер:

Контроллер входа шлюза приложений (AGI C) позволяет использовать шлюз приложений в качестве входа для службы Azure Kubernetes ( AKS).

Входной контроллер работает как модуль внутри кластера AKS и потребляет входные ресурсы Kubernetes и преобразует их в конфигурацию шлюза приложений, которая позволяет шлюзу распределять трафик c с балансировкой нагрузки на модули Kubernetes. , Входной контроллер поддерживает только Application Gateway V2 SKU.

Для получения дополнительной информации см. Входной контроллер шлюза приложений (AGI C).

Согласно Kiali документация:

В некоторых ситуациях вы можете увидеть множество соединений от "неизвестного" узла с вашими сервисами на графике, потому что некоторое внешнее по отношению к вам программное обеспечение sh может периодически пинговать или извлекать данные. Это обычно тот случай, когда вы настраиваете датчики живучести Kubernetes, или когда некоторые метрики приложений отправляются или подвергаются воздействию системы мониторинга, такой как Prometheus. Возможно, вы не хотели бы видеть эти связи, потому что они затрудняют чтение графика.


Чтобы ответить на ваш дополнительный вопрос:

Как мне установить sh для ISTIO о том, что это Azure шлюз приложения, а не «неизвестный» ресурс.

Насколько я знаю, нет способа сделать так, чтобы Custom (non-istio) Ingress Gateway был частью istio me sh. Оставляя Azure Application Gateway, помеченный как «неизвестный».

Надеюсь, это поможет.

0 голосов
/ 07 февраля 2020

AFAIK, istio требуется собственный входной шлюз для приложений.

Создайте istio VirtualService и укажите его на входной шлюз istio . Для этого выполните следующие действия: здесь и здесь .

Входной шлюз Istio для приложения можно увидеть в выводе kubectl get gateway:

$ kubectl get gateway
NAME               AGE
bookinfo-gateway   32s
...