All Projects → cloudnativelabs → Kube Router

cloudnativelabs / Kube Router

Licence: apache-2.0
Kube-router, a turnkey solution for Kubernetes networking.

Programming Languages

go
31211 projects - #10 most used programming language
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to Kube Router

hybridnet
A CNI plugin, provides networking environment where overlay and underlay containers can run on the same node and have cluster-wide bidirectional network connectivity.
Stars: ✭ 188 (-89.64%)
Mutual labels:  bgp, kubernetes-networking
goplane
an agent for configuring linux network stack via GoBGP
Stars: ✭ 112 (-93.83%)
Mutual labels:  bgp, gobgp
calico-bgp-daemon
GoBGP based Calico BGP Daemon
Stars: ✭ 23 (-98.73%)
Mutual labels:  bgp, gobgp
balanced
BalanceD is a Layer-4 Linux Virtual Server (LVS) based load balancing platform for Kubernetes.
Stars: ✭ 34 (-98.13%)
Mutual labels:  bgp, ipvs
pilot
Simple web-based SDN controller for family and friends
Stars: ✭ 33 (-98.18%)
Mutual labels:  bgp, gobgp
gobgp exporter
Prometheus Exporter for GoBGP
Stars: ✭ 15 (-99.17%)
Mutual labels:  bgp, gobgp
China Operator Ip
中国运营商IPv4/IPv6地址库-每日更新
Stars: ✭ 1,255 (-30.82%)
Mutual labels:  bgp
Beluganos
The new network OS designed for white-box switches based on open API.
Stars: ✭ 95 (-94.76%)
Mutual labels:  bgp
Tcpsocks
Redirect traffic to SOCKS5 server with iptables, epoll based, single threaded.
Stars: ✭ 78 (-95.7%)
Mutual labels:  iptables
Bpf Iptables
An #eBPF and #XDP iptables firewall
Stars: ✭ 58 (-96.8%)
Mutual labels:  iptables
Exabgp
The BGP swiss army knife of networking
Stars: ✭ 1,713 (-5.57%)
Mutual labels:  bgp
Krill
RPKI Certificate Authority and Publication Server written in Rust
Stars: ✭ 119 (-93.44%)
Mutual labels:  bgp
Tabi
BGP Hijack Detection
Stars: ✭ 90 (-95.04%)
Mutual labels:  bgp
Iptables semantics
Verified iptables Firewall Ruleset Analysis
Stars: ✭ 85 (-95.31%)
Mutual labels:  iptables
Iptables
Development repository for Chef Cookbook iptables
Stars: ✭ 96 (-94.71%)
Mutual labels:  iptables
Ansible Role Firewall
A role to manage iptables rules which doesn't suck.
Stars: ✭ 81 (-95.53%)
Mutual labels:  iptables
The router
TheRouter is a software packet router based on DPDK an NPF libraries.
Stars: ✭ 123 (-93.22%)
Mutual labels:  bgp
Firehol
A firewall for humans...
Stars: ✭ 1,215 (-33.02%)
Mutual labels:  iptables
Proxifier For Linux
Simple C code with iptables make this tool proxifier which tunnels whole system traffic through the proxy server, without configuring individual application
Stars: ✭ 89 (-95.09%)
Mutual labels:  iptables
Fusis
Fusis Balancer is a dynamic and distributed TCP/UDP Load Balancer
Stars: ✭ 119 (-93.44%)
Mutual labels:  bgp

logo

Build Status Go Report Card Slack Docker Pulls kube-router License

Kube-router is a turnkey solution for Kubernetes networking with aim to provide operational simplicity and high performance.

Primary Features

kube-router does it all.

With all features enabled, kube-router is a lean yet powerful alternative to several network components used in typical Kubernetes clusters. All this from a single DaemonSet/Binary. It doesn't get any easier.

IPVS/LVS based service proxy | --run-service-proxy

kube-router uses the Linux kernel's LVS/IPVS features to implement its K8s Services Proxy. Kube-router fully leverages power off LVS/IPVS to provide rich set of scheduling options and unique features like DSR (Direct Server Return), L3 load balancing with ECMP for deployments where high throughput, minimal latency and high-availability are crucial.

Read more about the advantages of IPVS for container load balancing:

Pod Networking | --run-router

kube-router handles Pod networking efficiently with direct routing thanks to the BGP protocol and the GoBGP Go library. It uses the native Kubernetes API to maintain distributed pod networking state. That means no dependency on a separate datastore to maintain in your cluster.

kube-router's elegant design also means there is no dependency on another CNI plugin. The official "bridge" plugin provided by the CNI project is all you need -- and chances are you already have it in your CNI binary directory!

Read more about the advantages and potential of BGP with Kubernetes:

Network Policy Controller | --run-firewall

Enabling Kubernetes Network Policies is easy with kube-router -- just add a flag to kube-router. It uses ipsets with iptables to ensure your firewall rules have as little performance impact on your cluster as possible.

Kube-router supports the networking.k8s.io/NetworkPolicy API or network policy V1/GA semantics and also network policy beta semantics.

Read more about kube-router's approach to Kubernetes Network Policies:

Advanced BGP Capabilities

If you have other networking devices or SDN systems that talk BGP, kube-router will fit in perfectly. From a simple full node-to-node mesh to per-node peering configurations, most routing needs can be attained. The configuration is Kubernetes native (annotations) just like the rest of kube-router, so use the tools you already know! Since kube-router uses GoBGP, you have access to a modern BGP API platform as well right out of the box. Kube-router also provides a way to expose services outside the cluster by advertising ClusterIP and externalIPs to configured BGP peers. Kube-routes also support MD5 password based authentication and uses strict export policies so you can be assured routes are advertised to underlay only as you intended.

For more details please refer to the BGP documentation.

Standard Linux Networking

A key design tenet of Kube-router is to use standard Linux networking stack and toolset. There is no overlays or SDN pixie dust, but just plain good old networking. You can use standard Linux networking tools like iptables, ipvsadm, ipset, iproute, traceroute, tcpdump etc. to troubleshoot or observe data path. When kube-router is ran as a daemonset, image also ships with these tools automatically configured for your cluster.

Small Footprint

Although it does the work of several of its peers in one binary, kube-router does it all with a relatively tiny codebase, partly because IPVS is already there on your Kuberneres nodes waiting to help you do amazing things. kube-router brings that and GoBGP's modern BGP interface to you in an elegant package designed from the ground up for Kubernetes.

High Performance

A primary motivation for kube-router is performance. The combination of BGP for inter-node Pod networking and IPVS for load balanced proxy Services is a perfect recipe for high-performance cluster networking at scale. BGP ensures that the data path is dynamic and efficient, and IPVS provides in-kernel load balancing that has been thoroughly tested and optimized.

Getting Started

Project status

Kube-router is being used in several production clusters by diverse set of users ranging from financial firms, gaming companies to universities. For almost a year we have listened to users and incorporated feedback. The core functionality is stable. We are working toward GA release.

Contributing

We encourage all kinds of contributions, be they documentation, code, fixing typos, tests — anything at all. Please read the contribution guide.

Support & Feedback

If you experience any problems please reach us on kube-router slack channel for quick help. Feel free to leave feedback or raise questions by opening an issue here.

Acknowledgement

Kube-router build upon following libraries:

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].