Baoyuantop commented on issue #12447:
URL: https://github.com/apache/apisix/issues/12447#issuecomment-3976613226

   The `watch()` function sends a request with `watch=true` to the Kubernetes 
API Server, expecting a `timeoutSeconds` of 1800-2799 seconds. It then 
continuously calls `response.body_reader()` in a loop to read the event stream.
   
   The connection passes through an external LoadBalancer in cluster B (such as 
Azure AKS's default 4-minute Idle TCP Timeout). When there are no Endpoints 
change events in the watch stream for a short period, the LoadBalancer 
unilaterally closes the TCP connection, and `body_reader()` returns a "closed" 
error.
   
   To fully confirm that the cause is the LoadBalancer Idle Timeout (rather 
than other reasons such as network policies or TLS certificate issues), it's 
necessary to know the interval between the successful establishment of the 
watch connection and the occurrence of the closed error (i.e., how long each 
watch connection actually survives). If this interval matches the Azure AKS 
LB's Idle Timeout configuration, then this cause can be fully confirmed.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to