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

Client-side GRPC load balancing #5224

Closed
BojanZelic opened this issue Nov 28, 2023 · 1 comment
Closed

Client-side GRPC load balancing #5224

BojanZelic opened this issue Nov 28, 2023 · 1 comment
Labels
feature-request All issues for new features that have not been committed to needs-discussion

Comments

@BojanZelic
Copy link
Contributor

BojanZelic commented Nov 28, 2023

Proposal

Keda currently uses the pick_first load balancing policy for GRPC connections which is the grpc library default. This currently works in most setups because of default coredns configurations. However, if we're not using the default settings, Keda should perform client-side round-robin load balancing for grpc connections aswell.

Use-Case

Some Kubernetes environments customize the default DNS configurations; For example:

  • disabling the loadbalance CoreDNS plugin
  • and talking to a headless service

the above changes means DNS requests will always return the results in the same order and won't randomize the ordering, ex with 2 pods:

root@app-5877ff4bd9-p27mk:/# dig headless-svc.default.svc.cluster.local +short
10.1.3.215
10.1.3.210

In this case, Keda should round-robin load balance grpc connections... otherwise it's always going to talk to the same pod and not send any requests off to the second one; this is a simple 1-line config change built into the grpc library; and shouldn't affect existing setups.

Is this a feature you are interested in implementing yourself?

Yes

Anything else?

No response

@BojanZelic BojanZelic added feature-request All issues for new features that have not been committed to needs-discussion labels Nov 28, 2023
@JorTurFer
Copy link
Member

I'd say that this is already done xD

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request All issues for new features that have not been committed to needs-discussion
Projects
Archived in project
Development

No branches or pull requests

2 participants