I am currently trying to form a high availability Kubernetes cluster having 5 worker nodes and 3 master in on-premise server. I learned about implementation of high availability cluster by checking its documentation. Also I understood the implementation of HA cluster on AWS cloud or Azure cloud using Load Balancer functionality from appropriate cloud provider.
My confusion is that, when I am creating the same high availability Kubernetes cluster in my on-premise server, then how I can use the Load Balancer functionality in implementation ?
The way we do it is that we put cluster of loadbalancers (simple nginx in reverse proxy in HA) in front of the K8s API and in front of the Ingress.
You can use keepalived to setup the load balancer for master on your on premise setup. The keepalived daemon can be used to monitor services or systems and to automatically failover to a standby if problems occur. There will be one Active server on the master and other two master will be in backup mode.
I have written a blog on how to setup kubernetes highly available cluster on premise. You can find it at below link:
https://velotio.com/blog/2018/6/15/kubernetes-high-availability-kubeadm
I have used keepalived to setup the load balancer in above blog on my on-premise cluster.