-
Notifications
You must be signed in to change notification settings - Fork 688
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Clarification on idle and idleConnection #6612
Comments
Hey @rahtr! Thanks for opening your first issue. We appreciate your contribution and welcome you to our community! We are glad to have you here and to have your input on Contour. You can also join us on our mailing list and in our channel in the Kubernetes Slack Workspace |
The Contour project currently lacks enough contributors to adequately respond to all Issues. This bot triages Issues according to the following rules:
You can:
Please send feedback to the #contour channel in the Kubernetes Slack |
It seems that Envoy's How do I configure timeouts documentation doesn't cover this scenario. The idle setting manages Envoy's |
The Contour project currently lacks enough contributors to adequately respond to all Issues. This bot triages Issues according to the following rules:
You can:
Please send feedback to the #contour channel in the Kubernetes Slack |
What question do you have?:
I am trying to find a clear distinction between the
idle
andidleConnection
configuration? Based on the details in this doc-->https://projectcontour.io/docs/main/config/api/#projectcontour.io/v1.TimeoutPolicy, it seems the
Explanation:
idle: 30s:
This setting means that if a connection between the proxy and the client is idle for 30 seconds during a single request/response cycle, the proxy will consider it idle. For HTTP/1.1, this applies to the time between requests on the same connection. For HTTP/2, it applies to the inactivity of streams.
Example:
idleConnection: 1h:
This setting means that if the connection between the proxy and the upstream service remains idle (no requests) for 1 hour, the proxy will close it.
Example:
Combined Behavior:
During a request/response cycle:
If the idle timeout is reached (30 seconds without new requests on HTTP/1.1 or inactivity in HTTP/2 streams), the connection is considered idle, and the proxy might close it.
Between requests:
The idleConnection timeout (1 hour) ensures that even if the proxy is idle between requests, it won’t close the connection to the upstream service until 1 hour of inactivity has passed.
If the above understanding is correct then for this configuration:
If the connection to the upstream service is closed due to the idleConnection timeout, and the client then tries to send a request, it would indeed result in a failure if the proxy cannot establish a new connection to the upstream service in time.
Anything else you would like to add:
[Miscellaneous information that will assist in solving the issue.]
Environment:
kubectl version
): v1.28.11/etc/os-release
):The text was updated successfully, but these errors were encountered: