-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Do not interrupt querying readiness probes for plugins #6975
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
Conversation
Signed-off-by: Gleb Kogtev <[email protected]>
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #6975 +/- ##
==========================================
+ Coverage 55.70% 56.59% +0.89%
==========================================
Files 224 270 +46
Lines 10016 17408 +7392
==========================================
+ Hits 5579 9852 +4273
- Misses 3978 6965 +2987
- Partials 459 591 +132 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
Guys, would you please kindly take a look into this PR? |
The kubernetes plugin does. This is a very significant implementation that we want to be extra careful not to introduce changes in behavior that could disrupt existing processes. |
|
I think this may change the existing behavior of Kubernetes readiness checks. It depends on the behavior of the To be safe, we could bake the old behavior into the kubernetes readiness implementation (e.g. once HasSynced is true, then always return true for subsequent calls without checking HasSynced again). |
|
We could also introduce a new flag in the ready plugin to make it backward compatible. If this is true, we will not remove the plugin from the list if its Ready implementation returns true. |
yes - as long as the default behavior is the old behavior, this would work as well - but it does add one more mostly superfluous option to the configuration. |
|
Hello! I think it would be right to make a From k8s docs: https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-readiness-probes
I think it's not very good that CoreDNS @chrisohaver, @glebkin tell me what is needed to get things moving? About https://pkg.go.dev/k8s.io/client-go/tools/cache#SharedInformer https://pkg.go.dev/k8s.io/client-go/tools/cache#FIFO.HasSynced |
|
I’d prefer this be enabled by flag/option. Else we should defer it to the next minor release. How about |
Signed-off-by: Gleb Kogtev <[email protected]>
I've updated PR, please take a look |
Signed-off-by: Gleb Kogtev <[email protected]>
Signed-off-by: Gleb Kogtev <[email protected]>
1. Why is this pull request needed and what does it do?
Kubernetes constantly polls the readiness of the applications running in cluster. Getting the OK status does not guarantee that the application will continue to be ready to serve traffic. For example, our DNS server can use an external application as a source for DNS records. At some point, it may stop responding, we might want to signal this to k8s and stop receiving traffic until the connection is restored.
2. Which issues (if any) are related?
No issues
3. Which documentation changes (if any) need to be made?
I've already updated documentation for
readyplugin4. Does this introduce a backward incompatible change or deprecation?
It's backwards compatible as I introduced new functionality via additional configuration param.