Courseiva
KCNAChapter 10 of 12Objective 3.3

Cluster Architecture and Lifecycle Management

If you don't know how a Kubernetes cluster is set up, upgraded, and maintained, your applications will crash during updates, or worse, the whole system will fail when a server dies. Cluster architecture and lifecycle management are the foundation of keeping containerised apps running reliably, which is exactly what the KCNA exam tests. Understanding this means you can explain to a boss why a scheduled reboot at 3 AM won't hurt users.

12 min read
Advanced
Updated Jul 23, 2026
Editorial oversight: Johnson Ajibi· Security Systems Architect · MSc IT Security · IEEE Senior Member

A simple way to picture Cluster Architecture and Lifecycle Management

The 3-Flat Apartment Building Analogy

7 floors in a single building, each with its own front door. That is the starting point for managing a Kubernetes cluster — but instead of flats, it is nodes, and instead of a landlord, it is an admin. Imagine you own that building with 7 flats. You have a front entrance hall (the control plane) where the post, the heating controls, and the security system live. Each flat is a node. The tenants inside those flats are the applications (pods).

Setup is like buying the building shell, wiring the hall for electricity, fitting the meters, and labelling every flat. You decide the building's name, set the master key, and choose which flats get which floor. This is cluster initialisation — installing the control plane components (like kube-apiserver, which is the building's reception desk, and etcd, which is the building's filing cabinet for tenant contracts).

Upgrading the building means replacing the old boiler with a new one, but you must do it flat by flat so no tenant gets kicked out without notice. In Kubernetes, this is a rolling upgrade — you take one node out of service, update its software (kubelet, container runtime), and bring it back before moving to the next.

Node management is handling a flat that gets noisy neighbours. You quarantine that flat (cordon the node) so no new tenants arrive, then evict the bad ones (drain the node) and finally replace the flat's locks (reimage or repair). This directly maps to how an admin cordons, drains, and repairs a worker node without disrupting the whole building.

How It Actually Works

A Kubernetes cluster is a group of computers that work together to run your applications. Think of it as a team. The team has a captain (the control plane) and several players (the worker nodes). Setting up, upgrading, and managing these nodes is called lifecycle management. Without it, your applications would stop working when a computer fails or when you need to install security patches.

First, cluster setup. To start a cluster, you need at least one control plane node and one worker node. The control plane runs several critical components. The most important is the API server (kube-apiserver). It is the front door. Every command you send to the cluster — like 'run this app' or 'scale up' — goes through the API server. It checks your identity and decides if you are allowed to do that action (authentication and authorisation). Next is the scheduler (kube-scheduler). It is the matchmaker. When you say 'I want 3 copies of my app running', the scheduler decides which worker node gets each copy. It looks at how much memory and CPU each node has free, and picks the best fit. Then there is the controller manager (kube-controller-manager). Think of it as the quality inspector. It constantly checks that the cluster is doing what you asked. If a node dies, the controller manager sees that your app only has 2 copies instead of 3, and it tells the scheduler to start a third copy on a healthy node. Finally, there is etcd. This is the cluster's brain. It stores all the configuration data — what apps are running, where they are, what their settings are. Everything is written to etcd. If etcd is lost, the cluster forgets everything.

Worker nodes are the computers that actually run your applications. Each worker node has three main parts. The container runtime (like Docker or containerd) is the engine that actually starts and stops the containers. The kubelet is the agent that talks to the control plane. The kubelet receives instructions from the API server and tells the container runtime what to do. It also reports back — 'I am healthy', 'I have 10% CPU left'. The kube-proxy handles networking. It makes sure that traffic from the internet reaches the right container on the right node.

Now, cluster upgrade. Software gets old and vulnerable. You must update the control plane and worker nodes regularly. A common method is a rolling upgrade. You upgrade one node at a time. First, you tell the cluster to stop sending new work to a node (cordon it). Then you move the running applications off that node to other nodes (drain it). Then you upgrade the node's software. Then you bring it back into service (uncordon it). Repeat for every node. This way, your applications never stop running.

Node management is about keeping nodes healthy. If a node runs out of disk space or has a hardware failure, you need to replace or repair it. You might also need to add more nodes if your application becomes popular. This is called scaling the cluster. You install the necessary software on a new machine and join it to the cluster using a token. The control plane then recognises it and starts assigning work to it.

Why does all this matter? Without planned upgrades, your cluster becomes insecure. Without node management, a single hardware failure can crash your entire application. The KCNA exam tests whether you understand these steps because real companies depend on clusters being reliable. A misconfigured cluster means lost customers and lost money.

High-level architecture of a Kubernetes cluster showing the control plane components (API Server, Scheduler, Controller Manager, etcd) and two worker nodes with their internal agents (kubelet, kube-proxy, container runtime).

Walk-Through

1

Plan the Upgrade

Check the current Kubernetes version on all nodes using `kubectl get nodes`. Identify the target version. Verify compatibility with your applications. Read the release notes for breaking changes. This step prevents unexpected failures during the upgrade.

2

Cordon the First Worker Node

Run `kubectl cordon <node-name>`. This marks the node as unschedulable. The scheduler will not place new pods there. Existing pods keep running. This is a safety net — if you drain too fast, the node can still serve requests.

3

Drain the Node

Run `kubectl drain <node-name> --ignore-daemonsets`. This evicts all pods from the node gracefully. The pods are rescheduled onto other nodes based on available resources. The `--ignore-daemonsets` flag skips system pods that must run everywhere (like logging agents).

4

Upgrade the Node Software

SSH into the node. Update the package list and install the new versions of kubeadm, kubelet, and the container runtime. Run `sudo kubeadm upgrade node` to apply version changes. Restart the kubelet service. This step updates the node's software to the target version.

5

Uncordon and Verify

Run `kubectl uncordon <node-name>` to re-enable pod scheduling on the node. Then run `kubectl get nodes` to confirm the new version is reported. Check that the node status is 'Ready'. Repeat the process for the next node until all nodes are upgraded.

What This Looks Like on the Job

Imagine you work for a company called FoodBox, a food delivery app that runs on Kubernetes. You are the junior platform engineer, and it is your first week. The senior engineer, Maria, asks you to help with the monthly cluster upgrade. The production cluster has 10 worker nodes and 3 control plane nodes. Your task is to upgrade the worker nodes from Kubernetes version 1.28 to 1.29 without dropping any customer orders.

What do you actually do step by step?

First, you log into the central management server (a bastion host). You check the cluster's current version by running a command like kubectl get nodes. This shows every node and its version. You see all nodes are at 1.28. You also check the pod status to see where the food-ordering app runs. It is on nodes 3, 5, and 7. You note that there are 5 replicas of the app, meaning if one node goes down, the other four keep serving.

Then you cordon the first node (node 3). You run kubectl cordon node3. This tells the scheduler: 'Do not put any new pods on node 3.' Node 3 still runs its existing pods, but no new work arrives. Next, you drain node 3. You run kubectl drain node3 --ignore-daemonsets. This moves all the pods off node 3 to other healthy nodes. The food-ordering app pods get rescheduled onto nodes 1, 2, 4, and 6. The system automatically spreads them. You watch the app's metrics dashboard. The customer orders keep flowing — no downtime.

Now you upgrade node 3. You SSH into the node (secure shell). You update the package manager and install the new kubelet and kubeadm packages. You run sudo apt update && sudo apt install kubelet=1.29 kubeadm=1.29. Then you restart the kubelet. You verify the node is running version 1.29 by running kubectl get nodes again. It shows node 3 at 1.29. You uncordon it: kubectl uncordon node3. Now node 3 is back in service and will receive new work.

You repeat this process for every node. Node by node. The whole upgrade takes 2 hours. Maria checks the logs and sees zero errors. The customers never felt a thing.

Node management is similar. Last month, node 8 started reporting disk pressure — its disk was 90% full. You cordoned and drained it. Then you logged in and found that old container logs were piling up. You cleaned up the logs and checked the disk space. It dropped to 30%. You uncordoned the node and it was back in service. If you had not cleaned it, the node would have become NotReady and the app pods would have been rescheduled anyway, but with unnecessary stress on the other nodes.

These real-world actions — cordoning, draining, upgrading, monitoring — are exactly what the KCNA exam expects you to describe.

How KCNA Actually Tests This

The KCNA exam tests cluster architecture and lifecycle management in several predictable ways. First, expect questions about the components of the control plane. They will ask: 'What does the kube-scheduler do?' or 'Which component stores the cluster state?' The correct answers are: the scheduler assigns pods to nodes, and etcd stores the cluster state. They love to confuse you by saying the scheduler starts the pods — it does not. It only decides where to put them. The kubelet on the worker node tells the container runtime to actually start the container.

Traps include mixing up the control plane and worker node components. For example, they might ask: 'Which component runs on every worker node?' and list 'kube-controller-manager' as an option. Wrong — the controller manager runs only on control plane nodes. The correct worker node components are kubelet, kube-proxy, and the container runtime. - Upgrade procedures: They will ask about the steps to upgrade a cluster. The correct order is: upgrade the control plane first, then upgrade the worker nodes. They might ask about draining a node before upgrading it. Draining means gracefully evicting pods. They will test whether you understand that draining also marks the node as unschedulable (cordon it) automatically. The term 'cordon' itself is testable — they want you to know it stops new pods but keeps existing ones running. - Node management: Expect scenarios like 'A worker node has a hardware failure. What do you do first?' The correct answer is to cordon the node to stop new pods, then drain it to evacuate existing pods. They might offer 'reboot the node immediately' as a trap — that would kill all running pods with no warning, causing downtime. - Key definitions to memorise: - 'kubeadm' is the tool used to bootstrap (set up) a cluster. - 'kubectl' is the command-line tool to manage the cluster. - 'rolling update' as a method to update applications without downtime. - 'node' is a physical or virtual machine. - 'pod' is the smallest unit in Kubernetes, running one or more containers. - They may ask about cluster sizing: 'How many control plane nodes are recommended for high availability?' The answer is 3, because etcd requires a majority (quorum) to agree on changes. With 3 nodes, you can lose 1 and still function. With 2, you cannot form a majority if one fails. - Finally, be ready for questions about the container runtime interface (CRI). The KCNA expects you to know that the kubelet uses CRI to talk to the container runtime. The default runtime is containerd (not Docker directly).

Practise past sample questions: 'What is the purpose of kubectl drain?' Answer: To safely evict all pods from a node so the node can be taken down for maintenance.

Key Takeaways

A Kubernetes cluster has two types of nodes: control plane nodes that manage the cluster and worker nodes that run applications.

The control plane consists of kube-apiserver, kube-scheduler, kube-controller-manager, and etcd; each has a distinct role in cluster management.

A rolling upgrade updates one node at a time by cordoning, draining, upgrading, and uncordoning to maintain application availability.

etcd stores all cluster configuration and state; if etcd data is lost, the cluster cannot recover its previous state.

Draining a node gracefully evicts pods by rescheduling them on other nodes before the node is taken out of service.

The kubelet on every worker node is the agent that communicates with the control plane to follow instructions and report health.

Kubernetes does not repair failed nodes; it only reschedules workloads to healthy nodes, leaving node repair to administrators.

A cordon prevents new pods from being scheduled onto a node but does not affect pods already running on it.

Easy to Mix Up

These come up on the exam all the time. Here's how to tell them apart.

Control Plane Node

Runs kube-apiserver, kube-scheduler, controller-manager, and etcd

Manages the cluster state and schedules workloads

Must be highly available (usually 3 or 5 nodes for fault tolerance)

Worker Node

Runs kubelet, kube-proxy, and container runtime

Actually runs the application containers (pods)

Can be many nodes (tens or hundreds) to handle workload

Cordon

Marks node as unschedulable (no new pods)

Existing pods continue running unaffected

Used as a preparatory step before maintenance

Drain

Cordons the node first, then evicts all existing pods

Pods are rescheduled to other nodes gracefully

Used when taking a node completely out of service for upgrade or repair

kubeadm

Tool for bootstrapping (initialising) a Kubernetes cluster

Used during cluster setup and upgrade (kubeadm upgrade)

Works on the node directly (root access needed)

kubectl

Command-line tool for managing the cluster (deploy apps, check status)

Used daily by admins and developers

Communicates with the API server remotely

etcd

Stores cluster configuration and state (pods, secrets, config)

Used only by the Kubernetes control plane

Key-value store optimised for consistency and rapid reads/writes

Application Database

Stores user-facing data (customer records, orders, products)

Used by your application directly (like PostgreSQL or MongoDB)

Optimised for the application's data model and queries

Watch Out for These

Mistake

The control plane and worker nodes are the same thing.

Correct

The control plane manages the cluster; worker nodes run the applications. They have different software and different roles.

Beginners see both as 'servers' and assume they are identical. The distinction only becomes clear when you set up a cluster yourself.

Mistake

If a worker node fails, Kubernetes automatically fixes it by reinstalling the operating system.

Correct

Kubernetes does not fix the hardware or OS. It reschedules the pods onto healthy nodes. The node itself must be repaired or replaced by a human.

People confuse Kubernetes' self-healing (for applications) with physical machine healing. The cluster only cares about the workload, not the server hardware.

Mistake

etcd stores the actual application data (like database records).

Correct

etcd stores cluster configuration and state (what pods run, where, and their secrets). It does not store application data like user records or images.

The name 'store' sounds like a database, so beginners think it holds the app's data. It only holds metadata about the cluster's desired and current state.

Mistake

You must manually upgrade every Kubernetes component one by one on every node.

Correct

Tools like kubeadm or managed Kubernetes services automate the upgrade process. On-premise upgrades still require some manual steps but are scripted.

Early cloud training sometimes makes people think everything is manual. Modern tools handle much of the process, but the exam tests understanding of the steps, not manual skill.

Do You Actually Know This?

Reveal each answer, then mark whether you got it right. Score 60%+ to unlock the next chapter.

Frequently Asked Questions

What is the difference between cordon and drain in Kubernetes?

Cordon marks a node as unschedulable so no new pods are placed there, but existing pods keep running. Drain does everything cordon does plus it evicts all existing pods, moving them to other nodes.

Can I upgrade a Kubernetes cluster without downtime?

Yes, if you use a rolling upgrade strategy. Upgrade one node at a time by draining it first, upgrading, then bringing it back. This ensures there are always enough nodes running to serve traffic.

What happens if etcd fails?

If etcd fails, the control plane loses all cluster state — which pods are running, what services exist, etc. The cluster cannot operate until etcd is restored from a backup. etcd must be backed up regularly.

How many control plane nodes do I need for high availability?

At least 3 control plane nodes. This ensures a quorum (majority) can agree on state changes. If you have 2 nodes and 1 fails, the cluster stops because it cannot form a majority.

What is the purpose of kubeadm?

Kubeadm is a tool that helps you bootstrap a Kubernetes cluster. It sets up the control plane components and joins worker nodes to the cluster, simplifying the initial setup process.

What does the kubelet do on a worker node?

The kubelet is the agent that communicates with the control plane's API server. It receives instructions about which pods to run, starts the containers via the container runtime, and reports the node's health back to the control plane.

Terms Worth Knowing

Keep going

You've finished Cluster Architecture and Lifecycle Management. Continue through the KCNA study guide to build a complete picture of the exam.

Done with this chapter?