-
Notifications
You must be signed in to change notification settings - Fork 30
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
Three-Phase Endpoint Probing #672
Three-Phase Endpoint Probing #672
Conversation
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dprotaso The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
c1a573e
to
6fd68bc
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #672 +/- ##
===========================================
+ Coverage 66.97% 78.11% +11.14%
===========================================
Files 15 16 +1
Lines 863 1106 +243
===========================================
+ Hits 578 864 +286
+ Misses 254 203 -51
- Partials 31 39 +8 ☔ View full report in Codecov by Sentry. |
I had to introduce another phase in the probing - when transition new backends to the main routing rules I was hoping to drop the probes at the same time. Unfortunately with Contour this still results in a spike with 503s. Thus there is now a 'third phase' now - after new backend endpoint probes succeed we move them to the main routing rules. Start some new probes - when that succeeds is when we can drop the endpoint probes that we had originally. |
6fd68bc
to
3d3b68a
Compare
3d3b68a
to
f621578
Compare
/test all |
1 similar comment
/test all |
2d11b73
to
8420a34
Compare
/assign @izabelacg @ReToCode @skonto Hey folks - this is ready for a review - In a follow up PR I'll add some additional test cases. Given all the conformance tests pass I think this is ready to merge so we can get a nightly into Serving for further testing. |
/lgtm |
Because probes on the HTTPRoute now have unique paths we no longer use a vanilla prober from knative/networking. The changes make the prober less coupled to Ingress and it requires consumers to build up a list of backends URLs to probe. The probe target lister now merges backends and URLs with their corresponding proxy pod IPs and ports. The alternative would be to look up HTTPRoutes in the informer cache but theres no guarantee this is up to date.
We can't just drop the probing rules and move the backends into the main rules. This still results in 503s with Contour. Instead we now move the newer backends into the main rules and then once that 'succeeds' we drop the probes.
9acaf0a
to
451df94
Compare
@izabelacg rebased - you'll have to |
/hold cancel |
/lgtm |
Fixes: #18
I tried to break up the PR into readable commits for easier review.