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]
