Kubernetes 使用Istio 0.8和V13网关的TCP入口

Kubernetes 使用Istio 0.8和V13网关的TCP入口,kubernetes,istio,amazon-eks,Kubernetes,Istio,Amazon Eks,我试图使用v1alpha3路由打开到Istio服务网格的TCP连接。我可以成功地打开与外部负载平衡器的连接。交通正在按预期进入默认入口通道;我已经用入口通道吊舱上的tcpdump验证了这一点 不幸的是,流量从未被转发到服务网格中;它似乎死在入口大道上 以下是我的配置示例: apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: echo-gateway spec: selector: istio

我试图使用v1alpha3路由打开到Istio服务网格的TCP连接。我可以成功地打开与外部负载平衡器的连接。交通正在按预期进入默认入口通道;我已经用入口通道吊舱上的
tcpdump
验证了这一点

不幸的是,流量从未被转发到服务网格中;它似乎死在入口大道上

以下是我的配置示例:

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
我已验证入口网关可以通过指定端口上的
netcat
到达服务。在带有特使的服务吊舱上运行
tcpdump
,表示从未尝试与吊舱或代理进行通信

我已经把文档读了好几遍,不知如何继续。文件中的这一行对我来说是可疑的:

虽然Istio将配置代理在这些端口上侦听,但用户有责任确保这些端口的外部通信允许进入mesh


有什么想法吗?

您应该给
网关
端口起一个名称,例如

端口:
姓名:not_http
电话:80
协议:HTTP

(当我试图在Istio 1.0中创建没有名称的群集时,它被拒绝)。使用“not_http”有助于提醒我们这是一个TCP网关,无法访问所有的Istio配置功能

VirtualService
看起来是正确的。确保主机“*”只有一个VirtualService(使用
istioctl get all--all命名空间)