Skip to content

Introduction

Welcome to the introduction guide to Kube-router! This guide is the best place to start with Kube-router. We cover what kube-router is, what problems it can solve, how it compares to existing software, and how you can get started using it. If you are familiar with the basics of Kube-router, head over to the next sections that provide a more detailed reference of available features.

What is Kube-router

If you are not familiar with Kubernetes networking model it is recommended to familiarize with Kubernetes networking model. So essentially Kubernetes expects:

  • all containers can communicate with all other containers without NAT
  • all nodes can communicate with all containers (and vice-versa) without NAT
  • the IP that a container sees itself as is the same IP that others see it as

Kubernetes only prescribes the requirements for the networking model but does not provide any default implementation. For a functional Kubernetes cluster one has to deploy what is called as CNI or pod networking solution that provides the above functionality.

Any non-trivial containerized application will end up running multiple pods and exposing different services. Service abstraction in Kubernetes is an essential building block that helps in service discovery and load balancing. A layer-4 service proxy must be deployed to the Kubernetes cluster that provides the load-balancing for the services exposed by the pods.

Once you have pod-to-pod networking established and have a service proxy that provides load-balancing, you need a way to secure your pods. Kubernetes Network Policies provide a specfication to secure pods. You need to deploy a solution that implements network policy specification and provides security for your pods.

If you utilize LoadBalancer services in your cluster, then you need to deploy a solution that will allocate and manage your LoadBalancer IP address space.

Kube-router is a turnkey solution for Kubernetes networking that provides all the above essential functionality in one single elegant package.

Why Kube-router

Network is hard. You have multiple Kubernetes networking solutions that provide pod networking or network policy etc. But when you deploy indiviudal solution for each functionality you end up with lot of moving parts making it difficult to operate and troubleshoot.

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

Kube-router also uses best-of-breed low-level kernel solutions for maximum performance. Kube-router uses IPVS/LVS for service proxying and provides direct routing between the nodes.

Kube-router also provides very unique and advanced functionalities like DSR (Direct Server Return), ECMP based network load balancing etc.