Я пытаюсь открыть 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 настроит прокси-сервер для прослушивания этих портов, пользователь несет ответственность за то, чтобы внешний трафик к этим портам был разрешен в сетку.
Есть мысли?