All Projects → Demonware → balanced

Demonware / balanced

Licence: Apache-2.0 license
BalanceD is a Layer-4 Linux Virtual Server (LVS) based load balancing platform for Kubernetes.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to balanced

terraform-metal-k3s
Manage K3s (k3s.io) region clusters on Equinix Metal
Stars: ✭ 41 (+20.59%)
Mutual labels:  bgp, baremetal, anycast
gocast
GoCast is a tool for controlled BGP route announcements from a host
Stars: ✭ 55 (+61.76%)
Mutual labels:  bgp, anycast
Keepalived
Keepalived
Stars: ✭ 2,877 (+8361.76%)
Mutual labels:  ipvs, lvs
Kube Router
Kube-router, a turnkey solution for Kubernetes networking.
Stars: ✭ 1,814 (+5235.29%)
Mutual labels:  bgp, ipvs
eks-anywhere
Run Amazon EKS on your own infrastructure 🚀
Stars: ✭ 1,633 (+4702.94%)
Mutual labels:  k8s, baremetal
Kathara
A lightweight container-based network emulation system.
Stars: ✭ 139 (+308.82%)
Mutual labels:  bgp, k8s
djb2a
DJB2a non-cryptographic hash function
Stars: ✭ 31 (-8.82%)
Mutual labels:  hashing
pxe-pilot
API and CLI to manage PXE configurations
Stars: ✭ 56 (+64.71%)
Mutual labels:  baremetal
hphr
Halophile Router (a VyOS-based, SaltStack-automated, NetBox-configured router for small provider networks)
Stars: ✭ 39 (+14.71%)
Mutual labels:  bgp
metal-chests
Better alternative to IronChests
Stars: ✭ 13 (-61.76%)
Mutual labels:  metal
cloudpods
A cloud-native open-source unified multi-cloud and hybrid-cloud platform. 开源、云原生的多云管理及混合云融合平台
Stars: ✭ 1,469 (+4220.59%)
Mutual labels:  baremetal
stm32mp1-baremetal
Baremetal framework and example projects for the STM32MP15x Cortex-A7 based MPU
Stars: ✭ 43 (+26.47%)
Mutual labels:  baremetal
aws-cloud-map-mcs-controller-for-k8s
K8s controller implementing Multi-Cluster Services API based on AWS Cloud Map.
Stars: ✭ 61 (+79.41%)
Mutual labels:  k8s
ProductsStoreOnKubernetes
Demoing deployment of Docker containers into Kubernetes for both minikube and Azure AKS.
Stars: ✭ 90 (+164.71%)
Mutual labels:  k8s
conference
A WebRTC signaling server with support of MQTT and WebSocket as transport protocols, token based authentication (JSON Web Token) and external policy based authorization.
Stars: ✭ 27 (-20.59%)
Mutual labels:  k8s
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (+38.24%)
Mutual labels:  baremetal
cocos2d-bgfx
cocos2d-x-lite use bgfx as the rendering backend
Stars: ✭ 54 (+58.82%)
Mutual labels:  metal
k8s0
Another minimal kubernetes with ansible
Stars: ✭ 23 (-32.35%)
Mutual labels:  k8s
MHCLN
Deep Metric and Hash Code Learning Network for Content Based Retrieval of Remote Sensing Images
Stars: ✭ 30 (-11.76%)
Mutual labels:  hashing
siphash-java
SipHash in Java; zero-allocation and streaming implementations
Stars: ✭ 25 (-26.47%)
Mutual labels:  hashing

Go Report Card

BalanceD is a Layer-4 Linux Virtual Server (LVS) based load balancing platform for Kubernetes.

It is capable of providing basic load balancing for any Kubernetes cluster and is reliable and performant. This is achieved by utilizing LVS (also known as IPVS - IP Virtual Server), along with any Consistent-Hashing algorithm, to implement a stateless Direct-Server-Return (DSR) Layer-4 load balancer. The stateless nature means it can be horizontally scaled with the help of AnyCast and ECMP.

Above all, it is designed with modularity in mind which makes BalanceD very simple to operate and maintain.

BalanceD is meant to be placed alongside an existing Kubernetes networking solution, and is NOT a turnkey solution for Kubernetes networking such as kube-router, which was an inspiration for this project.

Status

BalanceD is being used in several production clusters to power the most demanding online game services at Demonware! Core functionality is considered stable.

Requirements

BalanceD requires two LVS/IPVS nodes at minimum for redundancy purposes - these can either be physical machines or virtual instances. Each node must be part of the Kubernetes cluster and can route to all Pods through their respective Pod IPs. Each node must be configured to act as BGP peers to advertise the VIP addresses to the rest of the network. For flexibility, BalanceD does not bundle a BGP speaker allowing for a more seamless integration with the network. A BIRD configuration is available here as a reference.

Kubernetes

BalanceD has been tested on versions Kubernetes >= 1.9. If kube-proxy is running in IPVS mode, the ipvs-controller of BalanceD must run in Pod Networking Mode to avoid conflict with IPVS.

Operating System

BalanceD was tested to operate on Linux kernels >= 4.4. However, it should work in theory with any modern kernels with decent LVS/IPVS support.

Supported CNI Plugins

This has been tested to work with:

Getting Started

Build

Docker

make images to build all controllers.

Golang

Go version 1.12 or above is required to build BalanceD
make build to build all controllers.

Acknowledgement

BalanceD is built upon following open-source libraries:

and many more!

BalanceD has also been inspired by:

Support and Feedback

Feel free to leave feedback or raise any questions by opening an issue here.

Contributing

We encourage all kinds of contributions! Feel free to submit a PR!

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].