Hey everyone! I'm diving into Kubernetes for educational purposes and have a question about the control plane. I understand that if the Kubernetes API server/control plane goes down, existing workloads will keep serving traffic but certain functions like autoscaling and cronjobs won't work until the server is back up. My curiosity lies in the idea of intentionally creating a low-availability API server setup. Is there documentation or guides on this? I'm thinking about a setup where the control plane can be gracefully shut down and started on a schedule, mainly for low-frequency cluster events. I know it might sound counterproductive to run Kubernetes this way, but I'm hoping to learn from it. Has anyone tried this approach, or are there reasons why it wouldn't work?
4 Answers
Honestly, I think you’re misunderstanding some of the basics here. Maybe take some time to review the fundamentals of Kubernetes before proceeding with this plan.
Don’t let the negative comments deter you; experimenting is a great way to learn, even if it feels messy sometimes!
It's important to understand that the Kubernetes architecture relies on the API server being available. If you shut it down, you won't just face errors; you'll also get a lot of chaos in your environment. The Kubelet will reference old configurations, and you'll likely see a lot of red indicators in your dashboard indicating problems. If resource constraints are a concern, you might want to explore running k3s, which is designed for lightweight setups.
Good point! I’m already running k3s and thinking about microk8s, looking for something that offers more control.
Also check out the Edge-Computing side of Kubernetes; it offers methods for intermittent control plane reachability, which might suit your needs!
If you’re running a homelab, I’d just recommend combining the control plane and worker nodes on the same machine. It's not that resource-intensive and keeps things simpler!
You're spot on about workloads continuing to run if the control plane crashes, but it's pretty rare for anyone to intentionally shut down their control plane. Most people find that the drawbacks outweigh any minimal resource savings. If you're mainly using this for learning, though, it might be a fun experiment! Just know that many third-party operators heavily rely on the API server, which could lead to errors if it's down regularly.
That makes sense! I'm mainly interested in understanding how everything interacts under the hood, which is why I thought this might be interesting for low-resource setups.
Exactly! In some cloud environments, like managed Kubernetes services, you don't even get charged for the control plane in non-prod setups, so shutting it down may not even save you anything!

Thanks for the concern, but I'm just trying to figure things out through experimentation. I'll take it under advisement!