Code Monkey home page Code Monkey logo

loxilb's Introduction

eBPF Emerging Project Go Report Card build workflow sanity workflow apache Info Slack

What is loxilb

loxilb is an open source cloud-native load-balancer based on GoLang/eBPF with the goal of achieving cross-compatibility across a wide range of on-prem, public-cloud or hybrid K8s environments.

Kubernetes with loxilb

Kubernetes defines many service constructs like cluster-ip, node-port, load-balancer etc for pod to pod, pod to service and service from outside communication.

All these services are provided by load-balancers/proxies operating at Layer4/Layer7. Since Kubernetes's is highly modular, these services can be provided by different software modules. For example, kube-proxy is used by default to provide cluster-ip and node-port services.

Service type load-balancer is usually provided by public cloud-provider(s) as a managed entity. But for on-prem and self-managed clusters, there are only a few good options available. Even for provider-managed K8s like EKS, there are many who would want to bring their own LB to clusters running anywhere. loxilb provides service type load-balancer as its main use-case. loxilb can be run in-cluster or ext-to-cluster as per user need.

Additionally, loxilb can also support cluster-ip and node-port services, thereby providing end-to-end connectivity for Kubernetes.

Why choose loxilb?

  • Performs much better compared to its competitors across various architectures
  • Utitlizes ebpf which makes it flexible as well as customizable
  • Advanced quality of service for workloads (per LB, per end-point or per client)
  • Works with any Kubernetes distribution/CNI - k8s/k3s/k0s/kind/OpenShift + Calico/Flannel/Cilium/Weave/Multus etc
  • Extensive support for SCTP workloads (with multi-homing) on K8s
  • Dual stack with NAT66, NAT64 support for K8s
  • K8s multi-cluster support (planned ๐Ÿšง)
  • Runs in any cloud (public cloud/on-prem) or standalone environments

Overall features of loxilb

  • L4/NAT stateful loadbalancer
    • NAT44, NAT66, NAT64 with One-ARM, FullNAT, DSR etc
    • Support for TCP, UDP, SCTP (w/ multi-homing), QUIC, FTP, TFTP etc
  • High-availability support with hitless/maglev/cgnat clustering
  • Extensive and scalable end-point liveness probes for cloud-native environments
  • Stateful firewalling and IPSEC/Wireguard support
  • Optimized implementation for features like Conntrack, QoS etc
  • Full compatibility for ipvs (ipvs policies can be auto inherited)
  • Policy oriented L7 proxy support - HTTP1.0, 1.1, 2.0 etc (planned ๐Ÿšง)

Components of loxilb

  • GoLang based control plane components
  • A scalable/efficient eBPF based data-path implementation
  • Integrated goBGP based routing stack
  • A kubernetes agent kube-loxilb written in Go

Layer4 Vs Layer7

loxilb works as a L4 load-balancer/service-mesh by default. Although it provides great performance, at times, L7 load-balancing might become necessary in K8s. There are many good L7 proxies already available for K8s. Still, we are working on providing a great L7 solution natively in eBPF. It is a tough endeavor one which should reap great benefits once completed. Please keep an eye for updates on this.

Telco-Cloud with loxilb

For deploying telco-cloud with cloud-native functions, loxilb can be used as a SCP(service communication proxy). SCP is nothing but a glorified term for Kubernetes load-balancing/proxy. But telco-cloud requires load-balancing across various interfaces/standards like N2, N4, E2(ORAN), S6x, 5GLAN, GTP etc. Each of these interfaces present its own unique challenges(and DPI) for load-balancing which loxilb aims to solve e.g.

  • N4 requires PFCP level session-intelligence
  • N2 requires NGAP parsing capability
  • S6x requires Diameter/SCTP multi-homing LB support
  • MEC use-cases might require UL-CL understanding
  • Hitless failover support might be essential for mission-critical applications
  • E2 might require SCTP-LB with OpenVPN bundled together

Getting Started

Community

Slack

Join the loxilb Slack channel to chat with loxilb developers and other loxilb users. This is a good place to learn about loxilb, ask questions, and work collaboratively.

General Discussion

Feel free to post your queries in github discussion. If you find any issue/bugs, please raise an issue in github and members from loxilb community will be happy to help.

Knowledge-Base

๐Ÿ“š Please check loxilb Documentation for more detailed info.

loxilb's People

Contributors

packetcrunch avatar trekkiecoder avatar ultrainstinct14 avatar nik-netlox avatar inhogog2 avatar cybwan avatar luisgerhorst avatar backguynn avatar codesnip12 avatar ianchen0119 avatar k8sguru avatar krizerg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.