Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dlespiau/balance
Client side load balancing for Kubernetes clusters
https://github.com/dlespiau/balance
kubernetes load-balancer service-mesh services
Last synced: 20 days ago
JSON representation
Client side load balancing for Kubernetes clusters
- Host: GitHub
- URL: https://github.com/dlespiau/balance
- Owner: dlespiau
- License: apache-2.0
- Created: 2018-05-14T11:21:38.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-05-06T17:24:55.000Z (over 3 years ago)
- Last Synced: 2024-06-19T05:55:30.930Z (5 months ago)
- Topics: kubernetes, load-balancer, service-mesh, services
- Language: Go
- Homepage:
- Size: 61.5 KB
- Stars: 18
- Watchers: 6
- Forks: 1
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Client-side L7 load balancing for Kubernetes Services
This repository implements in-process L7 load balancing algorithms for
Kubernetes processes.- Go library for your Go microservices.
- Uses the Kubernetes built-in Service discovery mechanism to find out which
endpoints requests can be routed to.
- Offers an abstraction to implement a variety of L7 load balancing mechanisms.
- Implements affinity and non-affinity algorithms.
- List of supported algorithms:
- [Consistent hashing](https://en.wikipedia.org/wiki/Consistent_hashing)
- [Consistent hashing with bounded Loads](https://arxiv.org/abs/1608.01350)## Using the library
XXX
## Sure but, why?
The Kubernetes Service abstraction is implemented as a L4 load balancer using
iptables DNAT on each node to route the Service Virtual IPs to pod IPs.Unfortunately, this leaves user without much control about where the requests
are going. Worse there are cases where L4 fails entirely to load balance
anything: think about HTTP/2 multiplexing all requests onto the same
connection!My Kubecon talk (Copenhagen, May 2018), [The Untapped
Power of Services - L7 Load Balancing Without a Service Mesh](
https://kccnceu18.sched.com/event/ENvv/the-untapped-power-of-services-l7-load-balancing-without-a-service-mesh-damien-lespiau-weaveworks-advanced-skill-level)
gives a lot more details about the reasons I've started this work.The talk is available in video format: