The CNCF accepted Porter, a load balancer meant for bare-metal Kubernetes clusters, in its Landscape. Porter uses BGP and ECMP to load balance traffic in self-hosted Kubernetes clusters.

There are two standard ways to expose Kubernetes services to external clients - the “LoadBalancer” service type and Ingress. When Kubernetes is deployed on cloud vendor platforms like GCP and AWS, these mechanisms depend on the vendor’s load balancer implementation. Bare-metal Kubernetes deployments need a load balancer implementation to provide this functionality. Porter provides a LoadBalancer service type implementation by dynamic configuration routing using BGP, IP access management, and traffic load balancing. Porter is part of the KubeSphere suite.

InfoQ reached out to Feynman Zhou, Information Developer at QingCloud, to find out more about Porter.

Porter uses the Equal-cost multi-path (ECMP) routing strategy with the Border Gateway Protocol (BGP) where routing to a single destination can happen over multiple best paths. Using multipath allows for installing multiple BGP paths in the routing table, and thus load balance traffic over multiple links. The BGP server runs as a StatefulSet and the agents run on each node as a DaemonSet, and the BGP configuration lies in a ConfigMap. The LB controller and agent component synchronizes the configured BGP routes to the physical switch in the cluster. The other component - EIP service - dynamically updates the EIP for the service.

Image courtesy: https://github.com/kubesphere/porter/

Porter uses the GoBGP project as its BGP implementation. Zhou elaborates:

It is used as a library by Porter. Going forward, we will change this way and adopt dynamic configuration of daemons. Therefore, different BGP projects can be supported as long as it complies with BGP.

MetalLB - another project with similar aims - also supports BGP based load-balancing. Both of these projects are targeted at bare-metal Kubernetes clusters. However, MetalLB does work on cloud platforms that allow access to the underlying network layers required for it to function. Zhou says that “it is possible that Porter will support Neutron BGP to publish routes in the future” on self-managed OpenStack clouds. He adds that for OpenStack, users can also use the official load balancer plugin.

#kubernetes #devops #news

Bare-Metal Kubernetes Load Balancer Porter Included in CNCF Landscape
1.45 GEEK