Intelligent Kubernetes Load Balancing at Databricks
databricks.com
Intelligent Kubernetes Load Balancing at Databricks
1–10 of 30 posts
Re: Intelligent Kubernetes Load Balancing at Databricks
#2Re: Intelligent Kubernetes Load Balancing at Databricks
#3From 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.
Re: Intelligent Kubernetes Load Balancing at Databricks
#4Re: Intelligent Kubernetes Load Balancing at Databricks
#5Less 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
In the README.md file, they compare it with a ClusterIP service, but not with a Headless on "ClusterIP: None".
The advantages of using Kuberesolver are that you do not need to change DNS refresh and cache settings. However, I think this is preferable to the application calling the Kubernetes API.
Re: Intelligent Kubernetes Load Balancing at Databricks
#6the "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 the best parts (endpoint watch, sync to clients with xDS) and moved it client-side. compared to the failure mode of a service mesh, this seems better.
Re: Intelligent Kubernetes Load Balancing at Databricks
#7this is "partially" true.
if you're using ipvs, you can configure the scheduler to just about anything ipvs supports (including wrr). they removed the validation for the scheduler name quite a while back.
kubernetes itself though doesn't "understand" (i.e., can NOT represent) the nuances (e.g., weights per endpoint with wrr), which is the problem.
Re: Intelligent Kubernetes Load Balancing at Databricks
#8Less 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
Re: Intelligent Kubernetes Load Balancing at Databricks
#9we 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
#10we 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…