istio 1.4.8:与AWS负载均衡器一起使用时出现奇怪的400错误



当我在AWS负载均衡器后面尝试连接到Istio Gateway时,我遇到了一个奇怪的400错误。

我在istio-ingresgateway日志中没有看到任何活动(即使打开了调试设置(,但当我在ingressgatewaypod上运行sysdig时,我会看到奇怪的半随机文本,其中经常包含"QUIT !T"

当我尝试通过浏览器或从集群外的curl发出http请求时,我会得到这个消息。

当我尝试在minikubeAzure中进行请求时,相同的Istio配置也能工作。

我还可以使用相同的AWSlb来指向Nginx入口控制器,它工作得很好。

sudo sysdig -s2000 -A -c echo_fds fd.ip=10.1.2.3

有时输出中没有GET请求

------ Read 100B from   10.1.1.3:44404->10.1.2.3:80 (envoy)


QUIT
!T
C
ct>
------ Write 66B to   10.1.1.3:44404->10.1.2.3:80 (envoy)
HTTP/1.1 400 Bad Request
content-length: 0
connection: close

而且,有时这种情况发生在GET请求之前

------ Read 3.39KB from   10.1.1.3:35430->10.1.2.3:80 (envoy)


QUIT
!T
C
atfI>GET /myapp/ HTTP/1.1

我想知道这些奇怪的字符是否会导致envoy路由不匹配,但我不知道这可能是从哪里来的。

关于这可能是什么,有什么建议吗?

有没有调试Istio入口的通用策略?

非常感谢您的帮助。

所以我找到了这个问题的答案。请求中的垃圾是在转移注意力。

关于设置的更多信息:

AWS负载均衡器正在终止TLS,因此它后面的所有流量都通过http端口31380。我已经通过istio-VirtualService设置传递了X-Forwarded-Proto: https标头,因此后端应用程序可以假设流量已经终止TLS流量。

解决方案:

在我的案例中,问题是AWS目标组上设置了Proxy protocol v2: Enabled。关闭它解决了问题。

相关内容

  • 没有找到相关文章

最新更新