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

Configurable sleep before nginx shutdown for upstream LB #4726

Closed
yvespp opened this issue Oct 30, 2019 · 6 comments · Fixed by #5855
Closed

Configurable sleep before nginx shutdown for upstream LB #4726

yvespp opened this issue Oct 30, 2019 · 6 comments · Fixed by #5855
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.

Comments

@yvespp
Copy link

yvespp commented Oct 30, 2019

Is this a BUG REPORT or FEATURE REQUEST? (choose one): FEATURE REQUEST
NGINX Ingress controller version: 0.26.1
Kubernetes version (use kubectl version): 1.15.5
Environment: on prem

Followup of: #4006 (comment)

We are on prem and use F5 as a TCP loadbalancer in front of the nginx pods:
client -> F5 TCP LB -> nginx Pods

The F5 checks the nginx health check every 5 seconds.
A nginx pod starts to terminate and immediately stops accepting new connections.
The F5 still sends new connections to the nginx pod for 5 seconds because the health check did not fail yet.
I think what would help here is a configurable sleep in the wait-shutdown hook between the stop of the controller (which fails the health check) and the shutdown of nginx. Ningx would still acception new connections until the F5 has realized that it is down and stops sending new connections to it.

@Cittarasu
Copy link

@aledbf @yvespp -- We will never be able to synchronize external LB health check to Nginx termination initiation in the wait-shutdown hook? Configurable sleep doesn't sync with external health check interval though even it's configured to match the health check interval in LB and sleep in the wait-shutdown hook?

@yvespp
Copy link
Author

yvespp commented Jan 6, 2020

@Cittarasu the sleeps gives the external LB time to notice that the Nginx Ingress is shutting down and stops sending new connections to that backend. You have to make sure that the sleep is long enough for that.

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Apr 5, 2020
@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels May 5, 2020
@fejta-bot
Copy link

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

@k8s-ci-robot
Copy link
Contributor

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Projects
None yet
4 participants