Less featureful than this, but we’ve been doing GRPC client side load balancing with kuberesolver[1] since 2018. It allows GRPC to handle the balancer implementations. It’s been rock solid for more than half a decade now. 1: https://github.com/sercand/kuberesolver
I've been using a standardized xds resolver[1]. The benefit here is that you don't have to patch grpc clients. [1] https://github.com/wongnai/xds
Intelligent Kubernetes Load Balancing at Databricks
21–30 of 30 posts
Re: Intelligent Kubernetes Load Balancing at Databricks
#22Thanks for writing - I found the Power of Two Choices algorithm particularly interesting (I haven't seen it before). From the recent grpConf ( https://www.youtube.com/playlist?list=PLj6h78yzYM2On4kCcnWjl... ) it seems gRPC as a standard is also moving in this "proxyless" model - gRPC will read xDS itself.
https://nginx.org/en/docs/http/ngx_http_upstream_module.html...
Re: Intelligent Kubernetes Load Balancing at Databricks
#23we have the same issue with HTTP as well, due to HTTP keepalive, which many clients have out-of-the box. the "impact" can be reduced by configuring an overall connection-ttl, so it takes some time when new pods come up but it works out over time. -- that said, i'm not surprised that even a company as large as databricks feels that adding a service mesh is going to add operational complexity. looks like they've taken…
Re: Intelligent Kubernetes Load Balancing at Databricks
#24I wonder why they didn't use rendezvous hashing (aka HRW)[0]? It feels like it would solve all the requirement that they laid out, is fully client side, and doesn't require real time updates for the host list via discovery. [0] https://en.wikipedia.org/wiki/Rendezvous_hashing
Re: Intelligent Kubernetes Load Balancing at Databricks
#25Re: Intelligent Kubernetes Load Balancing at Databricks
#26we have the same issue with HTTP as well, due to HTTP keepalive, which many clients have out-of-the box. the "impact" can be reduced by configuring an overall connection-ttl, so it takes some time when new pods come up but it works out over time. -- that said, i'm not surprised that even a company as large as databricks feels that adding a service mesh is going to add operational complexity. looks like they've taken…
I haven’t been keeping up but is there still hype over full mesh like istio/linkerd? Ive seen it tried in a couple of places but didn’t work super well; the last place couldn’t because datadog apparently bills sidecar containers as additional hosts so using sidecar proxy would have doubled our datadog bill.
that seems like the tail wagging the dog
Re: Intelligent Kubernetes Load Balancing at Databricks
#27Re: Intelligent Kubernetes Load Balancing at Databricks
#28Re: Intelligent Kubernetes Load Balancing at Databricks
#29Curios why cross-cluster loadbalancing would be necessary in a setup where you operate “thousands of clusters”? I assume these are per-customer isolated environments?