Согласно документации Istio , VirtualServices должен иметь возможность направлять запросы в «совершенно другую службу, чем была запрошена».Я хотел бы использовать эту функцию для предоставления службам различных псевдонимов в разных приложениях.
Я начинаю с определения VirtualService, например:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-vs
spec:
hosts:
- my-alias
http:
- route:
- destination:
host: my-service
Предполагается, что клиентский модуль вСетка должна иметь возможность отправлять запросы на http://my -alias и направлять их в my-service.В будущем я дополню это правилами соответствия, чтобы псевдоним по-разному работал для разных клиентов, но даже простая версия не работает.
Без других настроек клиент не может разрешить my-aliasчерез DNS.Я могу решить эту проблему, добавив службу k8s без селектора с именем my-alias, чтобы разрешить ее DNS, но тогда VirtualService, похоже, не выполняет перенаправление.Если я добавлю внешний хост, например google.com, в VirtualService, он успешно перенаправит все запросы на google.com на my-service.Использование полного имени хоста (my-alias.default.svc.cluster.local) не помогает.
Так что кажется, что VirtualService не позволяет мне перенаправлять трафик, связанный с другим сервисом в сетке.Ожидается ли это, и есть ли способ, которым я могу обойти это?