17 comments

[ 3.1 ms ] story [ 54.3 ms ] thread
Let's say I have a normal (non-Netris) stack on GCP with k8s etc, but I need to add better LB.

How would this play with a normal stack? Can I experiment and/or generally avoid making a big bet on Netris?

Asking for a friend

Hi, thanks. Two easiest ways of experimenting are: 1) Using our free cloud-based sandbox environment. 2) Installing the free version of Netris on any bare metal or virtual compute.

https://www.netris.ai/try will guide through each path

What's the use-case/objective? So I may be able to share more useful info.
What part of the solution is available for OS? https://github.com/netrisai/netris-operator
FRR, NF tables, DPDK are all open source. Netris just dynamically generates proper configurations for these standards open-source packages and glues them together.

netris-operator, is open source too.

Do you have specific use-case?

This is just what I was looking for
Glad that the article is helpful. Any suggestions you wish we cover in future articles that can be helpful to people running on-prem kubernetes clusters?
This is cool! So a customer can also use this for a high performance BGP router that uses FRR?
Exactly! Load Balancer, Border Router (BGP), NAT, site-to-site VPN -- those essential functions belong in the edge of the network and can all run in a single Linux machine. Using FRR, and DPDK can accelerate the packet processing to production grade (100Gbps per each Linux router)

While Netris glues this things together, and provides modern, declarative means to automatically operate the system.

I use MetalLB and the comparison table somewhat confuses me.

> Expose default type of services (ClusterIP) external

What's the use case of this? ClusterIP, by API definition, is used within the cluster. If I need to expose something to external, I use a LoadBalancer service.

> Frontend IP Address sharing

The table says MetalLB cannot do this. But isn't it just: https://metallb.universe.tf/usage/#ip-address-sharing ?

> Auto-add Kubernetes nodes

MetalLB speakers are commonly deployed as daemonsets. When a new node joins a cluster, the speaker will be deployed onto it by the daemonset controller. Isn't that what "auto-add" means? What kind of auto-add functionality does MetalLB miss?

With that said, software LBs do have a lot of issues, and this is a pretty interesting approach.

Thanks for bringing this up.

Metallb is a good product for small use cases. When you consider production, something scalable to 10s 100s or 1000s of nodes then:

auto-add: Every time you add/remove k8s node, you need to tweak your BGP configs to add/remove BGP neighbor (both on Metallb and your router/switch)

ip-address-sharing: MetalLB can share Ip address only when backends are the same, it isn't pure IP address sharing

What do you think?

I agree with your points. Thanks for the clarification!
>> Expose default type of services (ClusterIP) external > What's the use case of this? ClusterIP, by API definition, is used within the cluster. If I need to expose something to external, I use a LoadBalancer service.

Exactly! You use service of the type LoadBalancer to expose something to the public Internet. You need something that will respond to your LoadBalancer request.

While Metallb is a nice tool for small clusters. Netris offers a way of leveraging open source ecosystem but provide a production grade cloud-like LoadBalancer service together with bunch of other essential things you will need when you are building a private cloud.

What is your use-case?