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

kuberesolver support for grpc #8381

Open
seankhliao opened this issue Sep 10, 2023 · 2 comments
Open

kuberesolver support for grpc #8381

seankhliao opened this issue Sep 10, 2023 · 2 comments

Comments

@seankhliao
Copy link
Contributor

Is your feature request related to a problem? Please describe.

getting gRPC to properly load balance on k8s is not a straightforward endeavor, the sticky connections easily result in unbalanced load in a 2 tier deployment.
#4274 #8000

Describe the solution you'd like

native k8s resolver support
https://github.com/sercand/kuberesolver

Describe alternatives you've considered
headless services, client side sidecars, etc

@jmacd
Copy link
Contributor

jmacd commented Sep 11, 2023

I would like to propose that the OCB support an optional list of underscore imports to be imported by the generated main.go. The OTel Collector doesn't need to do anything to support alternative load balancers and resolvers (since this PR released in v0.84.0), since gRPC has a static registration mechanism. IOW, all main.go needs to do is

import _ "github.com/sercand/kuberesolver"

then use an address with kubernetes:// as a prefix. Likewise, to add a custom load balancer, underscore-import it and
then set balancer_name in a configuration and gRPC will do the rest. I suspect many users of OCB would benefit from an underscore_imports directive, and these are canonical examples why.

@seankhliao
Copy link
Contributor Author

Note that kuberesolver is a grpc resolver for name resolution, not a balancer.
We'd need additional config for this i think?
I think the specific kuberesolver package also doesn't do automatic registration.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants