Istio出口从python微服务发出了“上游连接错误或在标头之前断开连接/重置”错误

时间:2018-12-22 18:17:21

标签: python kubernetes istio envoyproxy

当我在dockerized或kubernetes容器中运行Python微服务时,它工作正常。但是,使用Istio服务网格时,它将无法正常工作。

我为两个外部外部HTTP API添加了ServiceEntry。看来我可以使用服务网格内部的curl命令访问容器内的url内容表单。因此,我认为服务条目可以正常运行。

但是,当我尝试在Python中使用xml.sax解析器的微服务中时,尽管没有Istio的同一个应用程序也能正常工作,但它却给了我upstream connect error or disconnect/reset before headers

我认为这与Istio或Envoy或Python有关。

更新:我确实注射了Istio-proxy边车。我还为外部MySQL数据库添加了ServiceEntry,并且从微服务连接了mysql。

1 个答案:

答案 0 :(得分:2)

我已经找到了导致此错误的原因。我的Python服务使用xml.sax解析器库从Internet解析xml,互联网使用的是启动http / 1.0请求的旧版urllib包。

Envoy不支持http / 1.0协议版本。因此,它不起作用。我通过使用头盔为Istio设置global.proxy.includeIPRanges =“ 10.x.0.1 / 16”来解决此问题。实际上,对于给定ip范围之外的所有传出连接,实际上绕过了整个envoy代理。

但是我不希望绕过Istio。