linkerd2/controller/webhook
Oliver Gould 54d2bcb0ec
controller: Increase HTTP ReadHeaderTimeout to 15s (#9272)
04a66ba added a `ReadHeaderTimeout` to our HTTP servers (at gosec's
insistence). We chose a fairly arbitrary timeout of 10s. This
configuration causes any connection that has been idle for 10s to be
torn down by the server. Unfortunately, this timeout value matches the
default Kubernetes probe interval and the default linkerd-viz scrape
interval. This can cause probes to race the timeout so that the
connection is healthy from the proxy's point of view and a request is
sent on the connection exactly as the server drops the connection.
These request failures cause controller success rate to appear degraded.

To correct this, this change raises the timeout to 15s so that the
timeout no longer matches the default probe interval.

The proxy's HTTP client is supposed to [retry] requests that encounter
this type of error. We should follow up by doing more research into why
that is not occurring in this situation.

[retry]: https://docs.rs/hyper/0.14.20/hyper/client/struct.Builder.html#method.retry_canceled_requests

Signed-off-by: Oliver Gould <ver@buoyant.io>
2022-08-26 13:33:38 -07:00
..
launcher.go allow pprof to be configurable via helm flags (#8090) 2022-03-22 14:31:04 -06:00
server.go controller: Increase HTTP ReadHeaderTimeout to 15s (#9272) 2022-08-26 13:33:38 -07:00
server_test.go controller: Increase HTTP ReadHeaderTimeout to 15s (#9272) 2022-08-26 13:33:38 -07:00
util.go viz: add tap-injector (#5540) 2021-01-21 11:24:08 -05:00