Настройка исходящего трафика
Для настройки правил исходящего трафика необходима настройка следующих объектов: Gateway (egress), VirtualService,
ServiceEntry. Примером будет являться istio-integration-producer, сервисом внешней системы будет
istio-integration-consumer. В качестве примера, добавление хэддера будет происходить не в самом запросе, который
отправляет запрос, а на этапе прохождения через Istio.
Для начала необходимо настроить Gateway (egress):
gateway-egress.yml type=yamlapiVersion: networking.istio.io/v1beta1 kind: Gateway metadata: name: egress-gateway labels: app: istio-egressgw purpose: egress spec: selector: istio: egressgateway servers: - hosts: - '*' port: name: http number: 8080 protocol: HTTP
Далее в VirtualService необходимо указать, что конкретно и мы хотим добавить/изменить в запросе, а также добавить
ServiceEntry.
VirtualService.yml type=yamlapiVersion: networking.istio.io/v1beta1 kind: VirtualService metadata: name: autonum-rest-vs spec: hosts: - host http: - headers: request: add: target-service-version: 0.1.0.1 route: - destination: host: host
ServiceEntry.yml type=yamlapiVersion: networking.istio.io/v1beta1 kind: ServiceEntry metadata: name: egress-se-istio-integration spec: exportTo: - . gateways: - ingress-gateway hosts: - host location: MESH_EXTERNAL ports: - number: 80 protocol: HTTP resolution: DNS