Same Kubernetes, different landlords
At work you'll probably meet Kubernetes as a managed service from a cloud provider. The big ones are EKS (Amazon Elastic Kubernetes Service), AKS (Azure Kubernetes Service) and GKE (Google Kubernetes Engine). Smaller providers, like DigitalOcean with DOKS, offer the same thing.
The good news: the core works the same on all of them. Pods, Deployments, Services, YAML files and every kubectl command are identical. In each one, the provider runs the control plane and you run your apps on worker nodes, just like on my CivicGrid cluster.
| Service | Cloud | Control plane fee | Good to know |
|---|---|---|---|
| EKS | Amazon Web Services | An hourly fee for every cluster, on top of the nodes. | By default each pod gets a real network address from your VPC (virtual private cloud), which can use up a small subnet faster than you'd expect. |
| AKS | Microsoft Azure | None on the Free tier, which has no uptime guarantee. Paid tiers add one. | Ties into Microsoft Entra ID, so people can sign in to the cluster with their work accounts. |
| GKE | Google Cloud | An hourly fee per cluster, with a monthly credit that covers one small cluster. | Autopilot mode manages the worker nodes for you too, so you only think about pods. |
| DOKS | DigitalOcean | Free. A high-availability control plane costs extra. | The simplest to start with, and what CivicGrid runs on. |
Prices change, so check each provider's pricing page before you create anything. And remember that the nodes cost money on every one of them, whether or not anything is running.
What actually differs between them is the edges, where Kubernetes meets the cloud:
- Permissions: how a pod gets access to cloud services like storage buckets or databases.
- Load balancers: what gets created when you expose an app to the internet (covered in the Kubernetes basics track).
- Storage: which kind of cloud disk a volume becomes.
- Nodes and upgrades: how you add machines, scale them, and move to a new Kubernetes version.
Learn the core once, and each cloud is a matter of learning its edges. The Kubernetes basics track teaches that core on a free cluster on your laptop.
Check it yourself
On any managed cluster you have access to, three commands show the split between what you run and what the provider runs:
kubectl get nodes # only your worker nodes
kubectl get pods -n kube-system # no kube-apiserver, etcd or scheduler pods
kubectl cluster-info # the API server address the provider gives you
Compare that with a kind cluster on your laptop, where the control plane shows up as its own node and its own pods. Lesson 2 of Kubernetes basics walks through it.