Skip to content

disallow exec probes for liveness and readiness checks#4086

Closed
joshrider wants to merge 1 commit intoknative:masterfrom
joshrider:disallow-execprobe
Closed

disallow exec probes for liveness and readiness checks#4086
joshrider wants to merge 1 commit intoknative:masterfrom
joshrider:disallow-execprobe

Conversation

@joshrider
Copy link
Copy Markdown
Contributor

Proposed Changes

  • remove the allowance for ExecActions as Readiness and Liveness probes

The runtime contract states that If specified, liveness and readiness probes are REQUIRED to be of the httpGet or tcpSocket types

Release Note

NONE

@googlebot googlebot added the cla: yes Indicates the PR's author has signed the CLA. label May 13, 2019
@knative-prow-robot knative-prow-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label May 13, 2019
@knative-prow-robot
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: joshrider
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: mattmoor

If they are not already assigned, you can assign the PR to them by writing /assign @mattmoor in a comment when ready.

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Copy Markdown
Contributor

@knative-prow-robot knative-prow-robot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@joshrider: 0 warnings.

Details

In response to this:

Proposed Changes

  • remove the allowance for ExecActions as Readiness and Liveness probes

The runtime contract states that If specified, liveness and readiness probes are REQUIRED to be of the httpGet or tcpSocket types

Release Note

NONE

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.

@knative-prow-robot knative-prow-robot added area/API API objects and controllers area/test-and-release It flags unit/e2e/conformance/perf test issues for product features labels May 13, 2019
@knative-metrics-robot
Copy link
Copy Markdown

The following is the coverage report on pkg/.
Say /test pull-knative-serving-go-coverage to re-run this coverage report

File Old Coverage New Coverage Delta
pkg/apis/serving/fieldmask.go 99.5% 99.5% -0.0
pkg/apis/serving/k8s_validation.go 98.6% 99.3% 0.8

@dgerd
Copy link
Copy Markdown

dgerd commented May 14, 2019

/hold

I have a PR currently out that looks to relax this requirement. https://github.com/knative/serving/pull/4035/files#diff-e5a9114cbfb7f985c0da2dfe04221c26R230

ExecProbes are unfortunately the only way to effectively probe many gRPC and HTTP/2.0 workloads as of right now. Taking this away has the potential to break existing workloads. We do need a better story here as the exec probes do not go through the queue-proxy container, are easy to implement incorrectly, and may not work in all environments. However, I don't think we can remove this at this time.

See https://kubernetes.io/blog/2018/10/01/health-checking-grpc-servers-on-kubernetes/ for more details.

/cc @ahmetb

@knative-prow-robot knative-prow-robot requested a review from ahmetb May 14, 2019 00:42
@knative-prow-robot knative-prow-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label May 14, 2019
@dprotaso
Copy link
Copy Markdown
Member

exec probes do not go through the queue-proxy container

Do you envision using sharing process namespaces between the pod's containers (beta in k8s 1.14) as a way to enable this?

@mattmoor
Copy link
Copy Markdown
Member

I'm wondering whether the combination of the exec probe and a readiness probe through the queue-proxy that TCP probes the user-container are (taken together) enough. This extends a layer further when we also incorporate probes on the mesh's proxy. 🐢

@alexellis
Copy link
Copy Markdown

Are httpProbes compatible with Istio under mTLS now, too? In Kubernetes / OpenFaaS we had to use execProbes to get around mTLS blocking the http traffic.

@mattmoor
Copy link
Copy Markdown
Member

@alexellis Yes in 1.1. Closing this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/API API objects and controllers area/test-and-release It flags unit/e2e/conformance/perf test issues for product features cla: yes Indicates the PR's author has signed the CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants