Bug Description
There are already K8s services with port 80 and protocol HTTP.
Start a new test service written in golang and it will keep sending HTTP requests to xxx.com resolved to an error IP with no response.
Test service always gets 503 connection failure error because of 10s of connection timeout. Then resolve xxx.com to correct IP, I expect the test service can get 200 responses but not. It can't recover anymore.
However, it can be recovered if xxx.com is changed to xxx.com:8080 since the go client will get network errors like connection reset by peer instead of HTTP 503 code response. It can reconnect to a new correct IP.
istioctl proxy-config listeners shows there are 80 listeners and not for 8080.
0.0.0.0 80 Trans: raw_buffer; App: HTTP Route: 80
0.0.0.0 80 ALL PassthroughCluster
For my scenario, there are many services that constantly call external services on port 80 with different hosts. Assume that one external service is down and DNS record is resolved to another IP, internal services will always get 503 HTTP response and can't recover anymore until restart itself(client using keepalive HTTP transport won't disconnect and create a new connection).
Without istio, internal service can recover after the DNS record is resolved to correct IP.
Version
Istio
client version: 1.12.1
control plane version: 1.12.1
data plane version: 1.12.1 (3 proxies)
K8s version 1.16.15
Additional Information
No response
Bug Description
There are already K8s services with port 80 and protocol HTTP.
Start a new test service written in golang and it will keep sending HTTP requests to
xxx.comresolved to an error IP with no response.Test service always gets 503 connection failure error because of 10s of connection timeout. Then resolve
xxx.comto correct IP, I expect the test service can get 200 responses but not. It can't recover anymore.However, it can be recovered if
xxx.comis changed toxxx.com:8080since the go client will get network errors likeconnection reset by peerinstead of HTTP 503 code response. It can reconnect to a new correct IP.istioctl proxy-config listenersshows there are 80 listeners and not for 8080.For my scenario, there are many services that constantly call external services on port 80 with different hosts. Assume that one external service is down and DNS record is resolved to another IP, internal services will always get 503 HTTP response and can't recover anymore until restart itself(client using keepalive HTTP transport won't disconnect and create a new connection).
Without istio, internal service can recover after the DNS record is resolved to correct IP.
Version
Additional Information
No response