Skip to content
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

chash: retry on another endpoint if the first one fails #10730

Open
pushrax opened this issue Dec 6, 2023 · 2 comments
Open

chash: retry on another endpoint if the first one fails #10730

pushrax opened this issue Dec 6, 2023 · 2 comments
Assignees
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-priority needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@pushrax
Copy link

pushrax commented Dec 6, 2023

When using the upstream-hash-by feature, if an endpoint fails, nginx will keep retrying on the same endpoint. This is a reasonable default configuration. However, if the application can tolerate it, better availability can be achieved by retrying on another endpoint (e.g. the next endpoint in the hash ring).

In particular this is useful during deploys, as nginx will try to send requests to a terminating pod for a couple seconds until the backends are synchronized. In our application, we are working around this by sleeping in a preStop hook for a few seconds, but the time for nginx to sync is not guaranteed, and it also slows down pod shutdown.

This is similar to a feature that was implemented for the session affinity balancer: session-cookie-change-on-failure in #4048

@pushrax pushrax added the kind/feature Categorizes issue or PR as related to a new feature. label Dec 6, 2023
@k8s-ci-robot k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Dec 6, 2023
@k8s-ci-robot
Copy link
Contributor

This issue is currently awaiting triage.

If Ingress contributors determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@Gacko
Copy link
Member

Gacko commented Dec 7, 2023

/assign

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature Categorizes issue or PR as related to a new feature. needs-priority needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
Development

No branches or pull requests

3 participants