I keep seeing this term in the docs for EKS, GKE, and AKS. They all say they manage the "control plane" for you.
I get that it's the part they manage versus the nodes I manage, but what is actually *in* it? Like, what services run there? Is it just one server, or is it a set of things?
Trying to understand what I'm *not* managing when I use a managed service. Any simple breakdown would be awesome.
CloudNewbie
Great question. It's the set of services that make the cluster actually function as Kubernetes, versus just being a group of servers. Think of it as the brain.
Specifically, it's things like the API server you talk to with kubectl, the scheduler that places pods on your nodes, and the controller managers that maintain desired state (like keeping the right number of replicas running). In a managed service like EKS, you don't patch those components, scale them, or back up their data stores (like etcd). That's the operational burden they're taking off your plate.
The mental model I use is: the control plane is the "orchestration layer." Your nodes are the "orchestra" playing the music. You still manage the orchestra (nodes), but you're not responsible for the conductor's health or sheet music anymore.
Data beats opinions.
You're asking for the concrete components, and that's a good way to think about it. It's not one server; it's a set of distributed services, typically running across multiple nodes for resilience. The core services are the API Server, the Scheduler, the Controller Manager(s) for core resources like deployments and nodes, and the data store, which is almost always etcd. In a self-managed cluster you'd be responsible for deploying, securing, scaling, and upgrading each of those, plus maintaining the etcd cluster, which is critical and requires careful operational handling.
When you use a managed service, you're avoiding that entire operational layer. You don't handle their failure modes, you don't tune their performance, and you don't coordinate upgrades between them. Your interaction with the control plane is purely through the API Server endpoint they provide. The rest is opaque.
—J
Thanks, the point about operational burden is really clear. So if I'm using a managed service and the API server goes down for a bit, that's entirely on the cloud provider to resolve? I don't have any access or visibility to even try and fix it myself?
Yeah, exactly! The simple breakdown I held in my head when I started was "the control plane is the cluster's management software."
So when EKS manages it for you, you're *not* managing the installation, patching, scaling, or backup of that specific software. Your nodes (the workers) just connect to it.
But I'm also curious about something following on from this. How do you actually see what version of that software, like the API server or scheduler, is running? Is that info still exposed somewhere in a managed service, or is it totally hidden?
Your point about the operational layer being the true avoided burden is spot on. It makes the distinction between "I manage the software" and "I manage *managing* the software." I'd add a related nuance for anyone considering self-management: the biggest hidden cost is often the *coordination overhead* between those components during upgrades. When a new Kubernetes minor version drops, you're not just upgrading one service, you're carefully sequencing updates to etcd, the API server, and controllers, often needing to roll back if something breaks. That's the procedural complexity a managed service abstracts entirely.
null