【问题标题】:Tcp client not connecting to server when using istio使用 istio 时 Tcp 客户端未连接到服务器
【发布时间】:2021-11-07 18:12:18
【问题描述】:

我创建了两个示例应用程序(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 

我做错了什么?

【问题讨论】:

  • 也许您的应用在代理准备好之前进行了网络调用。见stackoverflow.com/questions/52936524/…github.com/istio/istio/issues/11130#issuecomment-779300172
  • 感谢您的回复。这不是这里的问题。这可以通过使用 holdApplicationUntilProxyStarts: true 覆盖 istioperator 来解决
  • 我找到了解决方案。我尝试直接从客户端应用程序提供服务器的 IP 地址,但它不起作用,不知道为什么。现在我用服务器应用程序的 service_name 替换了 ip 地址,它正在工作
  • 请发布您的解决方案作为答案。

标签: go kubernetes istio


【解决方案1】:

发布我找到的解决方案。

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

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

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

【讨论】:

    猜你喜欢
    • 2021-08-12
    • 2022-01-16
    • 2019-06-06
    • 2019-06-18
    • 2017-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    相关资源
    最近更新 更多