-
Notifications
You must be signed in to change notification settings - Fork 38.7k
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
Pod with container with failed StartupProbe stays in Ready: false. #84178
Comments
/sig node |
Right, I was blindly hoping that this was sufficient: kubernetes/pkg/kubelet/prober/worker.go Line 275 in 3d40c4c
Let me correct, and thanks for the hint @Pingan2017 ! |
Did some research a few days ago, and it turns out that adding a |
I have proposed a PR, but could you elaborate on your wip... as it doesn't seem this case is correctly detected by the tests I have added? |
Thanks for the PR! My wip didn't get that much further, and I am still not sure what the best way is. The "main" difficulty I see is that fact that a probe can only hold one of two values: kubernetes/pkg/kubelet/prober/results/results_manager.go Lines 43 to 51 in ea4570a
In StartupProbe we need to initialize with one of them, and detect the next update, both if it is successful or failing. The result_manager will only propagate changes if the probe result change, but that isn't sufficient for us. kubernetes/pkg/kubelet/prober/results/results_manager.go Lines 110 to 114 in ea4570a
Adding a new entity to the This is just some of my thoughts, and there may be better ways to achieve the same. |
@thockin maybe you could jump in? |
Unfortunately, I just don't know this code at all any more. Clearly we have some state that we track, since they all have failureThreshold, so there's something between "success" and "fail" for the signal. I mean, this should be functionally the same as livenessProbe, right? |
@Random-Liu can maybe help guide? |
What happened:
Pod with container with failed
StartupProbe
stays inReady: false
.What you expected to happen:
Pod/container should be killed and restarted and eventually enter
CrashLoopBackOff
.How to reproduce it (as minimally and precisely as possible):
Start cluster with feature gate
StartupProbe=true
.Deploy pod:
Watch output:
Anything else we need to know?:
Environment:
kubectl version
):kind
cat /etc/os-release
): `Arch linuxuname -a
):Linux xps13 5.3.7-arch1-1-ARCH #1 SMP PREEMPT Fri Oct 18 00:17:03 UTC 2019 x86_64 GNU/Linux
kind
The text was updated successfully, but these errors were encountered: