-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Apply default livenessProbe and readinessProbe to the user container #4014
Comments
In theory we have this (we don't do liveness probes though) implemented via the queue-proxy, which does this exact probe. |
QueueProxy Probe on Admin Interface:
QueueProxyHandler Setup on Admin Interface: Line 201 in 1b6908c
Probe Handler:
|
We do have something here. Some areas where this doesn't match well with the description:
I think we could go either way on whether to update the contract, or to update the implementation for each of these things. I do however want to make them consistent. |
This change makes numerous cleanups to the runtime contract in an attempt to improve the readability of the document and make the document more useful for the intended auidence. * Moves developer facing statements to a new `runtime-user-guide`. Focuses `runtime-contract` on operator/platform-provider. * Add links to Conformance tests that test Runtime Contract statements. * Corrects, updates, or removes statements to more accurately represent today's Knative runtime. * Updates to informative or removes most untestable statements * Copies in important OCI runtime requirements we previously referenced * Removes reference to OCI specification that didn't bring new requirements. Ref: knative#2539, knative#2973, knative#4014, knative#4027
After discussion in the API working group meeting, this is my understanding of where we landed. Please correct if I missed something or misunderstood. On the contract/specification side:
On the implementation side:
|
/assign @joshrider |
/assign @shashwathi |
I've run into some questions about how to translate a RevisionSpec's probes over into something we'd want to execute from the queue-proxy against the user-container.
At present, our hardcoded readinessProbe will make a GET request to the queue-proxy, which then fires TCP probes at the user-container at 50 ms intervals. This gives us the chance to pick up the user-container as soon as possible. This 50ms could be the "platform-specific" The @dgerd pointed out that
Sidenote: there is a comment where we build the default probe in the queue-proxy that suggests we want to get the PreStop going as soon as possible. Given that the |
Few thoughts:
|
aggressive retries. |
The base change is in. I'd like to see this land as early in 0.8 as we can, so it can bake. Please LMK if you have questions or need reviews. |
Not to jinx anything, but the e2e tests just passed. Have some housekeeping and cleanup to do, but hope to have something up for feedback at the end of the week. |
@joshrider That's awesome news, LMK when things are RFAL. |
@joshrider did you jinx it? 😲 |
* prepare queue healthHandler for optional aggressive retries #4014 Co-authored-by: Shash Reddy <shashwathireddy@gmail.com> * add documentation for IsHTTPProbeReady Co-authored-by: Shash Reddy <shashwathireddy@gmail.com> * Address comments * add kubelet header to http probe, add status code to failed probe error * use kubelet user-agent in http probe Co-authored-by: Shash Reddy <shashwathireddy@gmail.com>
This PR builds the adapter which converts a user-defined probe to a probe that will be executed by queue proxy against user container. Co-authored-by: Shash Reddy <shashwathireddy@gmail.com>
* Prep for queue health handler for aggressive retries #4014 This PR builds the adapter which converts a user-defined probe to a probe that will be executed by queue proxy against user container. Co-authored-by: Shash Reddy <shashwathireddy@gmail.com> * Address golang linter comments * fix comment Co-authored-by: Shash Reddy <shashwathireddy@gmail.com> * return probe encoding error * factor out queue probe retry logic, clean up Co-authored-by: Shash Reddy <shashwathireddy@gmail.com>
In what area(s)?
/area test-and-release
Describe the feature
According to the second paragraph of Meta Requests in Knative Runtime Contract, we should apply default
livenessProbe
andreadinessProbe
to the user container when they are not specified, and have them the following settings:tcpSocket
set to the container's portinitialDelaySeconds
set to 0periodSeconds
set to platform-specific value@tcnghia @mattmoor @markusthoemmes
The text was updated successfully, but these errors were encountered: