-
Notifications
You must be signed in to change notification settings - Fork 691
consider changing the implementation of the Envoy readiness probe #4540
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
Comments
The Contour project currently lacks enough contributors to adequately respond to all Issues. This bot triages Issues according to the following rules:
You can:
Please send feedback to the #contour channel in the Kubernetes Slack |
unstaling, this one seems worthwhile to keep around to consider properly |
The Contour project currently lacks enough contributors to adequately respond to all Issues. This bot triages Issues according to the following rules:
You can:
Please send feedback to the #contour channel in the Kubernetes Slack |
The Contour project currently lacks enough contributors to adequately respond to all Issues. This bot triages Issues according to the following rules:
You can:
Please send feedback to the #contour channel in the Kubernetes Slack |
The Contour project currently lacks enough contributors to adequately respond to all Issues. This bot triages Issues according to the following rules:
You can:
Please send feedback to the #contour channel in the Kubernetes Slack |
xref #5771 |
The HealthCheck filter (proto) can send response that mimics the behavior of
It is not exactly the same though, since the success response from admin interface is HTTP/1.1 200 OK
cache-control: no-cache, max-age=0
content-type: text/plain; charset=UTF-8
date: Mon, 07 Apr 2025 10:20:03 GMT
server: envoy
transfer-encoding: chunked
x-content-type-options: nosniff
x-envoy-upstream-service-time: 0
LIVE while from HealthCheck filter it is HTTP/1.1 200 OK
content-length: 0
date: Mon, 07 Apr 2025 10:24:15 GMT
server: envoy
x-envoy-upstream-healthchecked-cluster: projectcontour During draining the admin interface responds: HTTP/1.1 503 Service Unavailable
cache-control: no-cache, max-age=0
connection: close
content-type: text/plain; charset=UTF-8
date: Mon, 07 Apr 2025 10:36:57 GMT
server: envoy
transfer-encoding: chunked
x-content-type-options: nosniff
x-envoy-upstream-service-time: 0
DRAINING and HealthCheck responds HTTP/1.1 503 Service Unavailable
connection: close
content-length: 0
date: Mon, 07 Apr 2025 10:30:58 GMT
server: envoy
x-envoy-immediate-health-check-fail: true
x-envoy-upstream-healthchecked-cluster: projectcontour The behavior and status codes are the same but response body and headers are not. |
Currently, the Envoy readiness probe hits the
/ready
endpoint on the Envoy admin interface. (https://github.com/projectcontour/contour/blob/main/examples/contour/03-envoy.yaml#L82-L87)envoyproxy/envoy#16425 documents potential issues with using this endpoint for health-checking Envoy, due to its handler running on the main thread.
We should consider changing the implementation of the readiness probe. One option would be to set up a static HTTP listener that serves a direct response specifically for health-checking.
The text was updated successfully, but these errors were encountered: