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

How can I change graphd service type to LoadBalancer? currently ClusterIp hardcoded #134

Closed
porscheme opened this issue May 3, 2022 · 9 comments
Labels
type/enhancement Type: make the code neat or more efficient

Comments

@porscheme
Copy link

porscheme commented May 3, 2022

Hi @wey-gu, how can we change graphd service type to LoadBalancer? currently ClusterIp hardcoded!

@wey-gu
Copy link
Contributor

wey-gu commented May 5, 2022

Dear @porscheme,

Nebula GraphClient/GraphD endpoint are load-balanced from the client-side, if you look into those clients, we specify all graphD addresses to the connetion_pool and it will round-robin from them.

To me, the load balancer/api gateway pattern cannot be applied to the nebula graph.

@MegaByte875 @veezhang @kqzh kindly add/correct if I understood it wrongly.

Thanks!

@porscheme
Copy link
Author

nebula-operator:v1.1.0
Nebula version: v3.1.0
Helm Charts

  • Client has to be with K8S cluster to reach graphd, since its using ClusterIP
  • Also, below simple query taking 20 minutes, Any tips t-shoot slow response?
MATCH (s:Student)-[r]-(a:CourseTcode)-[rr]-(b)
WHERE a.CourseTcode.id == 522687
RETURN s, r, a, rr, b limit 3

@MegaByte875
Copy link
Contributor

MegaByte875 commented May 5, 2022

@porscheme https://github.com/vesoft-inc/nebula-operator/tree/master/config/samples we also provide graph-nodeport service and nginx-ingress, you can have a try.

@wey-gu
Copy link
Contributor

wey-gu commented May 5, 2022

@porscheme

Client has to be with K8S cluster to reach graphd, since its using ClusterIP

Now I understood that you would like to expose its endpoint rather than questioning on load balancing part, we should create individual services per each graphD instance (as I mentioned above, client-side load balancing) as @MegaByte875 shared in the samples.

@MegaByte875, is it possible to provide those nodeport or ingress services per graphD by the operator itself? I believe this would be super helpful for users as the application layer in most cases is not in the same namespace or even cluster of NebulaClsuter. If it makes sense and doable, I would create the feature issue then :)

@porscheme
Copy link
Author

Thaanks @wey-gu & @MegaByte875.

  • Our Spark & Nebula are in two different K8S cluster

@porscheme https://github.com/vesoft-inc/nebula-operator/tree/master/config/samples we also provide graph-nodeport service and nginx-ingress, you can have a try.

Can you make this part of the helm chart?

@MegaByte875
Copy link
Contributor

@wey-gu Yes, this can be a feature @porscheme OK, I will make the service configurable by helm charts

@porscheme
Copy link
Author

@wey-gu Yes, this can be a feature @porscheme OK, I will make the service configurable by helm charts
This feature is very important for us to use Nebula-spark-connector, check with @wey-gu for more details.
This is blocking us.
Can we do this over this weekend, I can be your tester :)

@MegaByte875 MegaByte875 added the type/enhancement Type: make the code neat or more efficient label Jul 21, 2022
@MegaByte875
Copy link
Contributor

#147 @porscheme

@MegaByte875
Copy link
Contributor

I will close the issue, please re-open it if you have other questions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/enhancement Type: make the code neat or more efficient
Projects
None yet
Development

No branches or pull requests

3 participants