-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
fix query-frontend request load balancing when using k8s service #7966
fix query-frontend request load balancing when using k8s service #7966
Conversation
…lancing of queries
./tools/diff_coverage.sh ../loki-target-branch/test_results.txt test_results.txt ingester,distributor,querier,querier/queryrange,iter,storage,chunkenc,logql,loki Change in test coverage per package. Green indicates 0 or positive change, red indicates that test coverage for a package fell. + ingester 0%
+ distributor 0%
+ querier 0%
+ querier/queryrange 0%
+ iter 0%
+ storage 0%
+ chunkenc 0%
+ logql 0%
+ loki 0% |
./tools/diff_coverage.sh ../loki-target-branch/test_results.txt test_results.txt ingester,distributor,querier,querier/queryrange,iter,storage,chunkenc,logql,loki Change in test coverage per package. Green indicates 0 or positive change, red indicates that test coverage for a package fell. + ingester 0%
+ distributor 0%
+ querier 0%
+ querier/queryrange 0.1%
+ iter 0%
+ storage 0%
+ chunkenc 0%
+ logql 0%
+ loki 0% |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
I think we should add this to the upgrade guide as well
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
./tools/diff_coverage.sh ../loki-target-branch/test_results.txt test_results.txt ingester,distributor,querier,querier/queryrange,iter,storage,chunkenc,logql,loki Change in test coverage per package. Green indicates 0 or positive change, red indicates that test coverage for a package fell. + ingester 0%
+ distributor 0%
+ querier 0%
+ querier/queryrange 0%
+ iter 0%
+ storage 0%
+ chunkenc 0%
+ logql 0%
+ loki 0% |
**What this PR does / why we need it**: In PR #7966, I made changes to Query Frontend service. Part of it was creating a new service. To make the service properly load balance grpc requests, we need to use `grpclbServiceFor`, but since we do not use grpc in QF, I went with the usual method, i.e. I used `serviceFor`. Thinking more about it, I think there is no harm in keeping it grpc LB friendly, and it would save us from any possible bugs if we make QF accept queries via grpc.
What this PR does / why we need it:
We noticed an imbalance in the requests sent to the Query Frontend pods using
query-frontend
k8s service. This seems to be caused byquery-frontend
being a headless service that resolves to each QF pod IP and leaves it up to the client to load balance the requests as mentioned here.This PR fixes the issue by creating two separate services for pod IP discovery and load balancing of queries:
query-frontend
to be used for load balancing incoming Loki queries.query-frontend-headless
to be used for discovering QF pod IPs from queriers to connect as workers.Checklist
CHANGELOG.md
updateddocs/sources/upgrading/_index.md