-
Just finished up the first draft implementation for using Helm charts to install the YataiService (#945) and I've implemented the basic YataiService as well as the Postgres Persistent Volume. I'm currently wondering what the best way to handle load balancing is. In the issue #716, NGINX is suggested as per this article: https://www.nginx.com/blog/nginx-1-13-10-grpc/, but this definitely seems like a really complex way to do it. Another option I've heard of in the past for something similar is to use Linkerd which seems to be more up to date with current DevOps best practices and supports automatic gRPC load balancing (https://linkerd.io/2/features/load-balancing/) Thoughts? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 5 replies
-
Definitely something for the maintainers to decide, but I have an opinion. I find NGINX pretty easy to reason about. I didn't realize NGINX already had support for different load-balancing algorithms, so it seems like it would be pretty straightforward. The thing I don't know is how well NGINX plays with other services in a Kubernetes cluster. Is it relatively straightforward to specify other nodes in a cluster as |
Beta Was this translation helpful? Give feedback.
-
@jackyzha0 looking at some of the other Helm chart implementations and the ingress documentation @yubozhao shared, I think the YataiService chart only needs to create a Cluster IP type Service and an Ingress. The user can choose to install their own ingress-controller which will handle the actual ingress resource creation. The ingress controller could be nginx based Ideally we would want to expose the Ingress resource definition's annotation field to the user via a helm chart parameter so that user can configure the ingress by setting annotation such as |
Beta Was this translation helpful? Give feedback.
@jackyzha0 looking at some of the other Helm chart implementations and the ingress documentation @yubozhao shared, I think the YataiService chart only needs to create a Cluster IP type Service and an Ingress. The user can choose to install their own ingress-controller which will handle the actual ingress resource creation. The ingress controller could be nginx based
ingress-nginx
, but it can be other ingress controllers as well: https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/#additional-controllersIdeally we would want to expose the Ingress resource definition's annotation field to the user via a helm chart parameter so that user can configure the ingress by …