High Availability for Bare Metal Multi-master Kubernetes Cluster and Service Type Load Balancer
On-premise Platform9 Managed Kubernetes supports multi-master implementation for high availability.
Additionally, the apps running on multi-master Kubernetes clusters can be load balanced with the help of MetalLB.
Virtual IP Addressing with VRRP
Platform9 Managed Kubernetes uses the Virtual Router Redundancy Protocol (VRRP) with Keepalived to provide a virtual IP (VIP) that fronts the active master node in a multi-master Kubernetes cluster. At any point in time, the VRRP protocol associates one of the master nodes with the virtual IP to which the clients (kubelet, users) connect.
The virtual IP must be bound to a specific physical interface on the master node. The label for the physical interface, such as eth0, for example, must be provided by the user while creating the multi-master Kubernetes cluster.
Ensure that the virtual IP is reachable from the network this interface connects to, and that all master nodes use the same interface that the virtual IP will be bound to.
If the active master node goes down, the virtual IP is seamlessly associated with one of the remaining master nodes. The master node that associates with the virtual IP, now becomes the active master node.
Load Balancing with MetalLB
MetalLB is a network load-balancer implementation for Kubernetes using standard routing protocols. MetalLB is deployed as a Kubernetes app within the cluster. Given a pool of IPs, MetalLB allocates IPs for providing north-south connectivity to Kubernetes apps via the service type “LoadBalancer” object. For more information, refer to the MetalLB website.