Skip to content
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

net-istio should guard the prober against resync flooding #262

Closed
mattmoor opened this issue Sep 4, 2020 · 5 comments · Fixed by #301
Closed

net-istio should guard the prober against resync flooding #262

mattmoor opened this issue Sep 4, 2020 · 5 comments · Fixed by #301
Assignees
Labels
kind/bug Categorizes issue or PR as related to a bug.

Comments

@mattmoor
Copy link
Contributor

mattmoor commented Sep 4, 2020

Right now the prober is unconditionally called during reconciliation to determine readiness: https://github.com/knative-sandbox/net-istio/blob/81a9b95df6ba5516bb3240b53caaa1686fc2dd75/pkg/reconciler/ingress/ingress.go#L203

This is ok under normal circumstances because internally the prober caches the probe result and so on global resyncs we hit the cache and things finish quickly. However, when we resync due to failing over (perhaps due to rollout) this cache is empty.

If I have 1000 ksvc, they are exposed on both gateways, and those gateways have 5 pods each, then the prober must perform 5 * 2 * 1,000 = 10,000 probes before normal work may resume.

In net-contour, I changed things to have the main Reconcile loop rely on the recorded readiness of the kingress to elide IsReady checks, effectively recording the probers internal cache in the CRD's durable status.

cc @JRBANCEL @tcnghia @nak3 @ZhiminXiang

@JRBANCEL
Copy link
Contributor

JRBANCEL commented Sep 4, 2020

have the main Reconcile loop rely on the recorded readiness of the kingress to elide IsReady checks.
Basically, calling IsReady only if KIngress.Status is not Ready?
That should work, since for KIngress to be Ready (and ObservedGeneration == Generation) probing must have succeeded at some point int the past.

/assign

@mattmoor
Copy link
Contributor Author

mattmoor commented Sep 4, 2020

Yeah exactly. see: knative-extensions/net-contour#231

@JRBANCEL
Copy link
Contributor

/assign @arturenault

@knative-prow-robot
Copy link
Contributor

@JRBANCEL: GitHub didn't allow me to assign the following users: arturenault.

Note that only knative-sandbox members, repo collaborators and people who have commented on this issue/PR can be assigned. Additionally, issues/PRs can only have 10 assignees at the same time.
For more information please see the contributor guide

In response to this:

/assign @arturenault

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.

@arturenault
Copy link
Contributor

/assign

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants