Я пытаюсь открыть TCP-соединение с сеткой служб Istio, используя маршрутизацию v1alpha3. Я могу успешно установить соединение с внешним балансировщиком нагрузки. Этот трафик попадает в IngressGateway по умолчанию, как и ожидалось; Я проверил это с tcpdump
на модуле IngressGateway.
К сожалению, трафик никогда не пересылается в сервисную сеть; кажется, что он умирает в IngressGateway.
Ниже приведен пример моей конфигурации:
apiVersion: networking.istio.io/v1alpha3
kind: Gateway
metadata:
name: echo-gateway
spec:
selector:
istio: ingressgateway # use istio default controller
servers:
- port:
number: 31400
protocol: TCP
hosts:
- "*"
---
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: echo-gateway
spec:
hosts:
- "*"
gateways:
- echo-gateway
tcp:
- match:
- port: 31400
route:
- destination:
host: echo.default.svc.cluster.local
port:
number: 6060
Я подтвердил, что IngressGateway может подключиться к Сервису через netcat
на указанном порту. Запуск tcpdump
в модуле служб с посланником означает, что никогда не было попыток связи с модулем или прокси.
Я несколько раз перечитывал документацию и не понимаю, что делать дальше. Эта строчка из документации мне кажется подозрительной:
Хотя Istio настроит прокси-сервер для прослушивания этих портов, ответственность за то, чтобы внешний трафик, поступающий на эти порты, поступал в сетку, лежит на пользователе.
Есть предположения?