簡體   English   中英

istio 1.4.8:與 AWS 負載均衡器一起使用時出現奇怪的 400 錯誤

[英]istio 1.4.8: strange 400 error when used with AWS Load balancer

當我在AWS負載均衡器后面嘗試連接到Istio Gateway時,我收到了一個奇怪的400錯誤。

我在istio-ingresgateway日志中沒有看到任何活動(即使啟用了調試設置),但是當我在ingressgateway pod 上運行sysdig時,我看到奇怪的半隨機文本,其中經常帶有"QUIT !T"

當我嘗試通過瀏覽器發出http請求或從集群外部發出curl請求時,我得到了這個。

當我嘗試在minikubeAzure中發出請求時,相同的Istio配置有效。

我還可以使用相同的AWS lb 指向Nginx入口 controller,它工作得很好。

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

output中有時沒有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 header,因此后端應用程序可以假設流量是已經終止的 TLS 流量。

解決方案:

我遇到的問題是 AWS Target Group 設置了Proxy protocol v2: Enabled 關閉它解決了這個問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM