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

Brief window of routing traffic to container before it's ready #15

Open
nokjuh opened this issue Mar 16, 2022 · 0 comments
Open

Brief window of routing traffic to container before it's ready #15

nokjuh opened this issue Mar 16, 2022 · 0 comments

Comments

@nokjuh
Copy link
Contributor

nokjuh commented Mar 16, 2022

• Service Fabric publishes container instance endpoints immediately as the instance starts, but before the application in the container is ready to handle traffic. This will cause Traefik to start routing requests there, even though they will fail. Traefik health check will then notice that the instance is not available, and stop routing traffic there until the instance is available.
• This causes about 5 to 30 second period when some requests may go to the new instance before it's ready, and will fail.
• This probably only causes issues with new connections, since existing connections will have sticky session cookie pointing to another instance.
• Fixing this would require Service Fabric to publish endpoints only when the instance is ready. This info is available to Service Fabric through Docker health checks (in use in our containers) and a Readiness Check (not currently enabled in our containers). However, neither of those will currently prevent the endpoints from being published. Microsoft received our feedback on Azure Connection Programs Yammer about the Readiness Check not working as expected, but did not promise anything.
• Alternatively Traefik could change its behavior to not assume new endpoints are healthy, if not as default then at least as an option. There is an open feature request for this, opened in 2019: traefik/traefik#4544

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant