Learn how Kubernetes control plane and node components work, then build and troubleshoot a kubeadm cluster with hands-on labs and CKA-style drills.
It is Monday morning in Pune. A platform engineer runs kubectl get pods and gets connection refused on port 6443.
You type one line, kubectl create deployment, and some seconds later a container is running on a machine you never named.
When a component misbehaves, the fix is almost always a file edit.
kubeadm assumes the machines are ready and it refuses to continue if they are not.
Three commands create a cluster: kubeadm init on the first node, a CNI manifest applied with kubectl, and kubeadm join on each worker.
Exam tasks and real incidents both ask the same question: what is this component actually configured with, and how do I change it without breaking...
It is Monday morning in Pune. A platform engineer runs kubectl get pods and gets connection refused on port 6443.
You type one line, kubectl create deployment, and some seconds later a container is running on a machine you never...
When a component misbehaves, the fix is almost always a file edit.
kubeadm assumes the machines are ready and it refuses to continue if they are not.
Three commands create a cluster: kubeadm init on the first node, a CNI manifest applied with kubectl, and kubeadm join...
Exam tasks and real incidents both ask the same question: what is this component actually configured with, and how do I...
When something breaks, the first job is not fixing. It is deciding which side is broken.
Everything so far builds a cluster with one control plane node.
You are going to build a real cluster from bare machines: one control plane node and two workers.
The exam does not test whether you understand clusters.
Most first-cluster failures fall into a handful of patterns.
Quick reference tables Keep these within reach during practice, and try to need them less each week.
Roles that use the skills in this module.
DevOps Engineer
Site Reliability Engineer
Platform Engineer
Not a software engineer sheet. Every problem comes from real DevOps, SRE, Platform and Cloud interviews, from your first script to a system you build yourself.
Open the Coding Sheetkubeadm is the official tool that bootstraps a minimum viable Kubernetes cluster on machines you already have. It generates certificates, writes the control plane manifests, starts the control plane and produces the join command for workers. It does not provision servers, install a network plugin or manage add-ons beyond CoreDNS and kube-proxy.
A static Pod is a Pod defined by a YAML file on a node instead of through the API server. kubeadm writes one for etcd, kube-apiserver, kube-scheduler and kube-controller-manager into /etc/kubernetes/manifests, and the kubelet runs and restarts them from there. This lets the control plane start before any API server exists, and you change a component by editing its file.
The kubelet reports NotReady until a CNI plugin is installed, because Pods have no network without one. CoreDNS also stays Pending for the same reason. Apply a CNI manifest such as Calico and both problems clear within a minute or two.
Kubernetes talks to runtimes through the Container Runtime Interface (CRI), and containerd and CRI-O implement it directly. Docker Engine does not, so it needs the extra cri-dockerd adapter. For new clusters and for the CKA, use containerd.
A bootstrap token created by kubeadm expires after 24 hours by default. When it expires, run kubeadm token create --print-join-command on the control plane node to get a fresh join command.