I've been experimenting with Kubernetes for a while and currently have a 3-node cluster where all nodes are functioning as both workers and control-plane nodes. I initially thought that I could manage the cluster even if the main node went down, just by switching the IP of the first node to the second in the kube config, but that didn't work as I expected. I found kube-vip and set up a Virtual IP (VIP) for bootstrapping kube-init, and now it works smoothly. I'm curious – what tools or methods do you all recommend to achieve high availability for Kubernetes API servers?
5 Answers
I've been using kube-vip in a production 3-node k3s cluster and it's been fantastic for API availability. But for LoadBalancers, it gets a bit shaky, so I switched to MetalLB for those.
It sounds like you've got a solid setup going! A 3 master-worker configuration is excellent for a homelab. To ensure seamless access to your cluster, you definitely need something that handles failover – tools like kube-vip, HAProxy, or Keepalived can do the trick. I'm trying out kairos.io right now; it has some of these options pretty easily configurable.
I'm currently using Keepalived with HAProxy for my setup and it seems to be working just fine, even if I can’t recall the exact blog post that guided me through the setup.
You could set up a LoadBalancer service in front of your cluster and potentially use Traefik for a dedicated FQDN/proxy setup. Check out this link for a sample configuration style. It makes things neat!
Consider using Talos with its shared VIP feature. It might be worth it for your setup! Just make sure to properly configure your VIPs to avoid hiccups later.

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures