首页 > 解决方案 > 使用 istio 时 Tcp 客户端未连接到服务器

问题描述

我创建了两个示例应用程序(tcp-server 和 tcp-client)来检查 istio 环境中的 TCP 连接。使用以下链接在 g0 中创建服务器和客户端

https://www.linode.com/docs/guides/developing-udp-and-tcp-clients-and-servers-in-go/

在 kubernetes 集群中部署了应用程序并在没有 istio 的情况下进行了测试,它工作正常。

但是安装了 istio(demo 配置,按照这个 url 安装 istio:https ://istio.io/latest/docs/setup/getting-started/ ),并重新部署应用程序填充 envoy-proxy 后,客户端没有连接到服务器

同样使用以下命令使服务器连接成功

sh -c "echo world | nc 10.244.1.29 1234" is 

我究竟做错了什么?

标签: gokubernetesistio

解决方案


发布我找到的解决方案。

问题:我试图使用 ip 地址和 nodePort 连接到服务器,这在 istio 环境中无法正常工作

解决方案:从客户端而不是提供服务器节点的ip地址和nodePort,而是提供服务器应用程序的服务名称和容器端口。

额外信息:为了使用来自外部集群的客户端,为服务器创建网关和虚拟服务。在您的外部客户端中,提供 istio-ingress pod 的 nodePort 和 ip 地址作为服务器目标


推荐阅读