Description
Re kubernetes/kubernetes#52176, kubernetes/kubernetes#56720, #342
(Short form: a stalled TCP connection to apiserver from kubelet or kube-proxy can cause ~15 minutes of disruption across a substantial number of nodes until the local kernel closes the socket.)
I believe we need a mechanism for requestCanceler.CancelRequest
to invoke transport.CloseIdleConnections
based on config. It looks like we could do this with a small http.RoundTripper
built to purpose. I hope to submit a PR with this change shortly.
I'm not sure if that behavior should be activated on a case-by-case basis using config.WrapTransport
(less invasive, narrower change) or if it should be part of the core config used in transport.HTTPWrappersForConfig
(needed in multiple use cases per issues listed above). What's the convention here?