Gateway API также умеет управлять east-west-трафиком – то есть взаимодействием между сервисами. Разберёмся, как это работает
Для начала нужно понять, что такое инициатива GAMMA.
GAMMA — Gateway API for Mesh Management and Administration
Изначально Gateway API был разработан для управления ingress-трафиком.
То есть трафиком, который поступает извне кластера к сервисам внутри него – это сценарий north-south.
GAMMA расширяет возможности Gateway API на внутренний трафик service mesh – то есть на east-west-трафик.
Это означает, что одни и те же ресурсы Gateway API можно использовать как для Ingress, так и для service mesh.
Но есть важное отличие 👇
Обычно при использовании таких ресурсов Gateway API, как
HTTPRoute, GRPCRoute и других, в качестве parentRef указывается Gateway.Именно Gateway является точкой входа, которой принадлежат IP-адрес и порты, принимающие трафик извне кластера.
Однако в подходе GAMMA при настройке mesh-трафика ресурсы Gateway API, например
HTTPRoute, могут использовать в качестве parentRef не Gateway, а Service.После этого
HTTPRoute определяет, как должен маршрутизироваться трафик, поступающий на этот Service: распределение по весам, разделение трафика и другие правила.Схема прохождения трафика выглядит так:
client → общий Service (backend) → Services отдельных версий (backend-v1, backend-v2) → podsПри этом нельзя использовать паттерн «общий Service + subsets», как в связке Istio
VirtualService и DestinationRule.Причина в том, что Gateway API проектируется как единый стандарт, который должен работать с разными реализациями service mesh, включая Istio, Linkerd и другие.
👉 DevOps Portal
