From 496740382e284c5e490f372ba193a28b566843f5 Mon Sep 17 00:00:00 2001 From: Nikhil Malik <66406124+nik-netlox@users.noreply.github.com> Date: Mon, 22 Jul 2024 10:48:29 +0900 Subject: [PATCH 1/2] Update README.md --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d6263a003..831baeaac 100644 --- a/README.md +++ b/README.md @@ -57,11 +57,14 @@ Additionally, loxilb can also support cluster-ip and node-port services, thereby loxilb works as a L4 load-balancer/service-proxy 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 a communication proxy defined by [3GPP](https://www.etsi.org/deliver/etsi_ts/129500_129599/129500/16.04.00_60/ts_129500v160400p.pdf) and aimed at telco micro-services running in cloud-native environment. Telco-cloud requires load-balancing and communication across various interfaces/standards like N2, N4, E2(ORAN), S6x, 5GLAN, GTP etc. Each of these present its own unique challenges which loxilb aims to solve e.g.: +For deploying telco-cloud with cloud-native functions, loxilb can be used as a SCP(service communication proxy). SCP is a communication proxy defined by [3GPP](https://www.etsi.org/deliver/etsi_ts/129500_129599/129500/16.04.00_60/ts_129500v160400p.pdf) and aimed at telco micro-services running in cloud-native environment. Read more in this [blog](https://dev.to/nikhilmalik/5g-service-communication-proxy-with-loxilb-4242) +![image](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/photos/scp.svg) + +Telco-cloud requires load-balancing and communication across various interfaces/standards like N2, N4, E2(ORAN), S6x, 5GLAN, GTP etc. Each of these present its own unique challenges 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 +- N2 requires NGAP parsing capability(Related Blogs - [Blog-1](https://www.loxilb.io/post/ngap-load-balancing-with-loxilb), [Blog-2](https://futuredon.medium.com/5g-sctp-loadbalancer-using-loxilb-b525198a9103), [Blog-3](https://medium.com/@ben0978327139/5g-sctp-loadbalancer-using-loxilb-applying-on-free5gc-b5c05bb723f0)) +- S6x requires Diameter/SCTP multi-homing LB support(Related [Blog](https://www.loxilb.io/post/k8s-introducing-sctp-multihoming-functionality-with-loxilb)) +- MEC use-cases might require UL-CL understanding(Related [Blog](https://futuredon.medium.com/5g-uplink-classifier-using-loxilb-7593a4d66f4c)) - Hitless failover support might be essential for mission-critical applications - E2 might require SCTP-LB with OpenVPN bundled together - SIP support is needed to enable cloud-native VOIP @@ -118,6 +121,7 @@ For deploying telco-cloud with cloud-native functions, loxilb can be used as a S - [System Requirements](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/requirements.md) - [Frequenctly Asked Questions- FAQs](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/faq.md) - [Blogs](https://www.loxilb.io/blog) +- [Demo Videos](https://www.youtube.com/@loxilb697) ## Community From 06d880ab661a02604a4a4d2383e04c98ba887849 Mon Sep 17 00:00:00 2001 From: Nikhil Malik <66406124+nik-netlox@users.noreply.github.com> Date: Tue, 23 Jul 2024 17:42:09 +0900 Subject: [PATCH 2/2] Update README.md --- README.md | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 831baeaac..099f43333 100644 --- a/README.md +++ b/README.md @@ -10,15 +10,33 @@ loxilb is an open source cloud-native load-balancer based on GoLang/eBPF with th ## 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. -
- -
+ +![Readme main](https://github.com/user-attachments/assets/12709c3f-08ca-429d-a9ec-c9efc90382b0) 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 full cluster-mesh implementation for Kubernetes (replacment of kube-proxy). +loxilb works as a L4 load-balancer/service-proxy by default. Although it provides great performance, at times, L7 load-balancing might become necessary in K8s. loxilb also supports L7 load balancing in the form of Kubernestes Ingress. This will benefit users who wants L4 and L7 under the same hood. + +Additionally, loxilb also supports: +- [x] kube-proxy replacement with eBPF(full cluster-mesh implementation for Kubernetes). +- [x] Ingress Support +- [x] Kubernetes Gateway API +- [ ] Kubernetes Network Policies + +## Telco-Cloud with loxilb +For deploying telco-cloud with cloud-native functions, loxilb can be used as a SCP(service communication proxy). SCP is a communication proxy defined by [3GPP](https://www.etsi.org/deliver/etsi_ts/129500_129599/129500/16.04.00_60/ts_129500v160400p.pdf) and aimed at telco micro-services running in cloud-native environment. Read more in this [blog](https://dev.to/nikhilmalik/5g-service-communication-proxy-with-loxilb-4242) +![image](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/photos/scp.svg) + +Telco-cloud requires load-balancing and communication across various interfaces/standards like N2, N4, E2(ORAN), S6x, 5GLAN, GTP etc. Each of these present its own unique challenges which loxilb aims to solve e.g.: +- N4 requires PFCP level session-intelligence +- N2 requires NGAP parsing capability(Related Blogs - [Blog-1](https://www.loxilb.io/post/ngap-load-balancing-with-loxilb), [Blog-2](https://futuredon.medium.com/5g-sctp-loadbalancer-using-loxilb-b525198a9103), [Blog-3](https://medium.com/@ben0978327139/5g-sctp-loadbalancer-using-loxilb-applying-on-free5gc-b5c05bb723f0)) +- S6x requires Diameter/SCTP multi-homing LB support(Related [Blog](https://www.loxilb.io/post/k8s-introducing-sctp-multihoming-functionality-with-loxilb)) +- MEC use-cases might require UL-CL understanding(Related [Blog](https://futuredon.medium.com/5g-uplink-classifier-using-loxilb-7593a4d66f4c)) +- Hitless failover support might be essential for mission-critical applications +- E2 might require SCTP-LB with OpenVPN bundled together +- SIP support is needed to enable cloud-native VOIP ## Why choose loxilb? @@ -53,22 +71,6 @@ Additionally, loxilb can also support cluster-ip and node-port services, thereby - Integrated goBGP based routing stack - A kubernetes agent [kube-loxilb](https://github.com/loxilb-io/kube-loxilb) written in Go -## Layer4 Vs Layer7 -loxilb works as a L4 load-balancer/service-proxy 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 a communication proxy defined by [3GPP](https://www.etsi.org/deliver/etsi_ts/129500_129599/129500/16.04.00_60/ts_129500v160400p.pdf) and aimed at telco micro-services running in cloud-native environment. Read more in this [blog](https://dev.to/nikhilmalik/5g-service-communication-proxy-with-loxilb-4242) -![image](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/photos/scp.svg) - -Telco-cloud requires load-balancing and communication across various interfaces/standards like N2, N4, E2(ORAN), S6x, 5GLAN, GTP etc. Each of these present its own unique challenges which loxilb aims to solve e.g.: -- N4 requires PFCP level session-intelligence -- N2 requires NGAP parsing capability(Related Blogs - [Blog-1](https://www.loxilb.io/post/ngap-load-balancing-with-loxilb), [Blog-2](https://futuredon.medium.com/5g-sctp-loadbalancer-using-loxilb-b525198a9103), [Blog-3](https://medium.com/@ben0978327139/5g-sctp-loadbalancer-using-loxilb-applying-on-free5gc-b5c05bb723f0)) -- S6x requires Diameter/SCTP multi-homing LB support(Related [Blog](https://www.loxilb.io/post/k8s-introducing-sctp-multihoming-functionality-with-loxilb)) -- MEC use-cases might require UL-CL understanding(Related [Blog](https://futuredon.medium.com/5g-uplink-classifier-using-loxilb-7593a4d66f4c)) -- Hitless failover support might be essential for mission-critical applications -- E2 might require SCTP-LB with OpenVPN bundled together -- SIP support is needed to enable cloud-native VOIP - ## Architectural Considerations - [Understanding loxilb modes and deployment in K8s with kube-loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/kube-loxilb.md) - [Understanding High-availability with loxilb](https://github.com/loxilb-io/loxilbdocs/blob/main/docs/ha-deploy.md)