-
Notifications
You must be signed in to change notification settings - Fork 432
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
UpstreamGroup continues to send traffic to unhealthy upstream. #8715
Comments
Could that be a dupe of #6647 @AkshayAdsul ? |
In this bug we get a |
@AkshayAdsul did that already work in a previous version? Or is that new? |
I tried this on 1.13.6 and 1.15.x versions and I saw the same issue. I don't think this ever worked. |
I'd guess Healthy panic threshold needs to be zero to properly get the no_healthy_upstream respone flag/details (link) |
If you're receiving this response details, then Envoy should never have sent the upstream request (link) |
When we set healthyPanicThreshold: 0 on an Upstream I see in the config dump the value is set as "healthy_panic_threshold": {} rather than 0. Which means its setting to default value which is 50 and not 0. |
I dont know about the This works fine with a single upstream with multiple subsets by the way. |
After more investigation I think we may have a fundamental mismatch in use case here. I am still confirming what the actual behavior is fully but I think we may have to introduce a new concept or flag to actually provide this type of functionality. For example instead of just having the route action with weights actually have the destinations of those weights be aggregate clusters with the other upstream group members as secondary/tertiary locations. Disclaimer this is just the result of a quick initial investigation. |
Alright have confirmed the prior statements that Upstream groups dont respect health between the upstream clusters as clusters contain their concept of health and an Upstream group is a route paradigm rather than a cluster level configuration. @SantoDE with follow up with the currently affected user and we will determine whether there is a configuration that would be acceptable to reconfigure the upstreams to be a single upstream with some load balancing setup (such as by locality based) or if we should approach adding aggregate clusters as a concept in Gloo Edge. |
This is a valuable learning that we should capture somewhere. User-facing
docs may be a good place to clarify that this translates to routing and not
cluster config.
…On Tue, Oct 10, 2023 at 09:20 Nathan Fudenberg ***@***.***> wrote:
Alright have confirmed the prior statements that Upstream groups dont
respect health between the upstream clusters as clusters contain their
concept of health and an Upstream group is a route paradigm rather than a
cluster level configuration.
@SantoDE <https://github.com/SantoDE> with follow up with the currently
affected user and we will determine whether there is a configuration that
would be acceptable to reconfigure the upstreams to be a single upstream
with some load balancing setup (such as by locality based) or if we should
approach adding aggregate clusters as a concept in Gloo Edge.
—
Reply to this email directly, view it on GitHub
<#8715 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/ANTAA56OQQVYLALGWGNTIV3X6VDQVAVCNFSM6AAAAAA5GHZUB6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONJVGQYTMMZZGE>
.
You are receiving this because you commented.Message ID:
***@***.***>
|
Yep thats one of the steps we are taking :P |
Gloo Edge Product
Open Source
Gloo Edge Version
V1.13.6 (But encountered this in other versions as well)
Kubernetes Version
v1.25
Describe the bug
We have an UpstreamGroup where healthchecks are configured on Upstream. But UpstreamGroup continues to send traffic to unhealthy upstream.
Expected Behavior
Expectation is that if the upstream is not healthy then upstream group will not route the request through that upstream.
But it seems that upstream group is not aware of the upstream health.
Steps to reproduce the bug
kubectl create ns echo
kubectl -n echo apply -f https://raw.githubusercontent.com/solo-io/workshops/master/gloo-edge/data/echo-service.yaml
kubectl -n echo apply -f https://raw.githubusercontent.com/solo-io/workshops/master/gloo-edge/data/echo-v2-service.yaml
Make one of the upstreams unhealthy( eg. scale deployment replica to 1 of echo app)
Send traffic
for i in {1..10};
do
curl -H "Host: echo.solo.io" $(glooctl proxy url)/
done
Observe No healthy upstream errors on half the requests.
Additional Environment Detail
No response
Additional Context
No response
Related Issues:
The text was updated successfully, but these errors were encountered: