Using kube-vip to provide HA control plane.
Introduction
A lot of companies are interested in moving out of the cloud to a “bare metal provider”. However when you then have to manage your own Kubernetes control plane nodes instead of using something like EKS, GKE or AKS, you run into a delimma. How do you provide an HA IP not only for your control planes, but also for your Kubernetes services? The answer is kube-vip.
What is kube-vip?
kube-vip is a project that provides a highly available control plane for Kubernetes. It does this by providing a virtual IP that can be used by the control plane nodes. This virtual IP is then moved between the control plane nodes as needed. This allows for a highly available control plane.
kube-vip has 2 primary modes of operation. ARP, and BGP. ARP is the simplest to setup but not as robust. If your bare metal provider supports BGP, then you should use BGP.
Installing kube-vip
kube-vip has many options for installation. If you are using an RKE2 or k3s cluster you can easily deploy the kube-vip Daemonset with the proper configuration. If you are using kubeadm, you can deploy kube-vip as a static pod.
Conclusion
kube-vip is a great project that can help you provide a highly available control plane. This allows you to move your Kubernetes cluster to a bare metal provider quickly, without the need for an external load balancer.
Keep an eye out for a future blog post on how to deploy kube-vip’s kube-vip-cloud-controller to provide an HA IP for Kubernetes services as well.