Kubernetes Interview Questions: Architecture, Control Plane and Nodes
Reviewed by Mark Dickie · Last updated
5 questions on this page you can answer and see marked on the spot. Go to the first one
Kubernetes architecture is the split between a control plane that decides what should run and worker nodes that run it. Expect questions on how a Pod moves from kubectl apply to a running container, which component owns each step, and what happens when etcd loses quorum. The API server is the only component that reads and writes etcd, and every other component watches the API server instead of talking to its peers. A strong answer names the symptom each component failure causes, not just what the component does.
Which Kubernetes architecture components do interviewers ask about?
| Component | What to be ready to explain |
|---|---|
| kube-apiserver | The only component that reads and writes etcd. Everything else works through its REST API and watch streams. |
| etcd | A Raft-backed key-value store. A three-member cluster keeps quorum with one member down and loses it with two down. |
| kube-scheduler | Filters and scores nodes for each unscheduled Pod, then sets spec.nodeName on the Pod. |
| kube-controller-manager | Runs control loops such as the ReplicaSet and Node controllers that move actual state toward desired state. |
| kubelet | Runs on every node, watches for Pods bound to it, and calls the container runtime through CRI. |
| kube-proxy | Programs Service routing rules on each node in iptables or IPVS mode. |
How can you practise the control plane before the interview?
- Run
kubectl get pods -n kube-system -o wideon a kubeadm cluster and match each static Pod to its control plane component. - Stop the kubelet on one worker with
systemctl stop kubeletand watch the node turn NotReady inkubectl get nodes. - Create a Deployment, delete one of its Pods, and follow the ReplicaSet controller recreating it with
kubectl get events --watch. - Run
etcdctl endpoint healthwith the peer certificate flags, stop one etcd member, and explain why writes still succeed or fail.
Key facts
- Tarmac has 46 Kubernetes interview questions on this topic, 10 of them on this page, at difficulty 1–4 of 5.
- Tarmac tracked 2,814 job postings asking for Kubernetes in October 2026.
- Roles asking for Kubernetes advertise a median base salary of £80,000, across 772 job postings as of October 2026.
- Tarmac last reviewed these Kubernetes interview questions on 3 November 2026.
At a glance
| Questions | 10 shown · 46 in the bank |
|---|---|
| Difficulty | 1–4 of 5 |
| Formats | Multiple answer, Ordering, True / false, Multiple choice, Flashcard, Fill in the blank, Short answer, Design exercise |
What you'll review
- api server
- control plane
- etcd
- kubelet
- kube proxy
Practice questions
Try one before you open the answer. Pick an option and press Check; it's marked on the spot.
Which of the following statements about the Kubernetes API server are true?#
Options
Pick every one that applies.
Show answer
True statements about the Kubernetes API server are: it is the only control plane component that reads from and writes to etcd directly; it validates and persists the desired state of Kubernetes objects; and it exposes the Kubernetes API over HTTP/HTTPS for clients like kubectl. The API server does not schedule pods onto nodes — that is the kube-scheduler's job.
The API server is the front-end of the Kubernetes control plane. It is the sole component that communicates directly with etcd, and it validates, authenticates, and persists the desired state of API objects. It also serves the Kubernetes API over HTTP/HTTPS. The claim that it selects which node each pod should run on is false: node selection for pods is the responsibility of the kube-scheduler, not the API server.
Order the stages that the Kubernetes API server applies to an incoming request to create a new Pod, from first to last.#
Put these in order
Show answer
The Kubernetes API server processes a create request in this order: authenticate the client, then authorize against RBAC, then run mutating admission controllers, then run validating admission controllers, and finally persist the object to etcd. Mutating controllers run before validating controllers so that any changes they make are visible to the validators that follow.
Every create request entering the API server passes through a fixed pipeline. First the client is authenticated (who are you?), then the request is authorized against RBAC (are you allowed to do this?). Next, mutating admission controllers run and may modify the object, followed by validating admission controllers that accept or reject it. Only after all admission checks pass does the API server write the object to etcd. Mutating controllers always run before validating controllers so that mutations are visible to the validators.
In a standard Kubernetes control plane, the kube-apiserver is the only component that reads from and writes to etcd directly; the scheduler and controller manager access cluster state through the API server instead.#
Options
Show answer
True. In a standard Kubernetes control plane, kube-apiserver is the only component that talks to etcd directly. The scheduler, controller manager, and other components read and write cluster state through the API server, which enforces authentication, authorization, and validation before anything is persisted.
Kubernetes is designed so that kube-apiserver is the single gateway to etcd, the cluster's backing store. The scheduler, controller manager, and other control plane components watch and update objects through the API server's REST interface, which handles authentication, authorization, admission control, validation, and optimistic concurrency. This keeps etcd access centralized and makes the API server the single source of truth for components to coordinate through. The statement is therefore true.
Where does a Kubernetes cluster persist the authoritative state of every object (Deployments, Pods, Secrets, …)?#
Options
Show answer
Kubernetes persists the authoritative state of every object in etcd, a consistent distributed key-value store. The kube-apiserver is the only component that reads from and writes to etcd directly; every other component goes through the API server. Consequently an etcd backup is effectively a full cluster backup, and losing etcd without one means losing the cluster's desired state.
etcd is the single source of truth: a consistent, distributed key-value store that holds all cluster state. The kube-apiserver is the only component that talks to etcd directly; everything else reads and writes through the API server. This is why an etcd backup is a cluster backup, and why losing etcd without a backup means losing the cluster's desired state.
What is the kubelet and where does it run?#
Show answer
The kubelet is the node agent that runs on every worker node. It registers the node with the control plane, watches the API server for Pods assigned to its node, and drives the container runtime (via the CRI) to start, stop, and health-check those Pods' containers. It also reports node and Pod status back. It does not schedule Pods — it only runs the ones the scheduler placed on it.
The kubelet is the control plane's hands on each node: it makes the actual containers match the Pods assigned to the node. Separating 'kubelet runs Pods' from 'scheduler assigns Pods' is a common point of confusion.
What role does etcd play in a Kubernetes cluster?#
Show answer
etcd is the cluster's backing store: a consistent, highly-available distributed key-value store that holds the entire cluster state (every object and its desired/observed status). The kube-apiserver is the only component that reads from and writes to etcd; everything else goes through the API server. Because it's the single source of truth, a regular etcd backup is effectively a full-cluster backup.
etcd is where 'desired state' physically lives. Knowing only the API server touches it — and that backing it up backs up the cluster — is core control-plane and disaster-recovery knowledge.
The Kubernetes API server (kube-apiserver) is the central management entity of the control plane. It validates and configures API objects such as pods, services, and controllers, and it is the only control-plane component that communicates directly with the cluster's backing data store, _____. Every other component — the scheduler, controller-manager, and each kubelet — reads and writes cluster state exclusively through REST calls to the API server, which in turn persists that state into _____.#
Show answer
The Kubernetes API server (kube-apiserver) is the central management entity of the control plane. It validates and configures API objects such as pods, services, and controllers, and it is the only control-plane component that communicates directly with the cluster's backing data store, etcd. Every other component — the scheduler, controller-manager, and each kubelet — reads and writes cluster state exclusively through REST calls to the API server, which in turn persists that state into etcd.
The kube-apiserver acts as the single gateway to the cluster's state. It is the sole component with a direct connection to etcd, the distributed key-value store that holds all persistent cluster data. All other control-plane components and nodes interact with cluster state by issuing API calls to the API server, which performs admission, validation, and serialization before writing to etcd. This design centralizes access control, audit logging, and schema enforcement.
In a Kubernetes cluster, you run kubectl create deployment web --image=nginx --replicas=3. Describe, in order, which control-plane components are involved from the moment the request is sent until a Pod is actually bound to a node, and state what each one does. Name the component that persists the desired state and the component that assigns the Pod to a node.#
Show answer
kube-apiserver receives the request, authenticates and authorizes it, runs admission control, and persists the Deployment object in etcd, which is the only component that stores cluster state. The Deployment controller in kube-controller-manager sees the new object through a watch and creates a ReplicaSet, and the ReplicaSet controller then creates the three Pod objects through the API server. The kube-scheduler watches for Pods with no nodeName, selects a suitable node by filtering and scoring, and writes the binding back through the API server. The kubelet on that node then starts the containers. etcd persists the desired state; the kube-scheduler assigns the Pod to a node.
The control plane works through the API server as the single entry point: clients and controllers never talk to each other or to etcd directly. Desired state is written to etcd via the API server, controllers reconcile higher-level objects into Pods, and the scheduler performs the node assignment by setting spec.nodeName through a binding. Naming etcd as the persistence store and kube-scheduler as the binder reflects the actual division of responsibilities.
On each node, what is kube-proxy responsible for?#
Options
Show answer
kube-proxy runs on every node and implements Service networking: it programs iptables or IPVS rules (or coordinates with the CNI) so that traffic sent to a Service's stable ClusterIP is load-balanced to one of its healthy backend Pods. It does not schedule Pods (the scheduler), pull images (the kubelet and runtime), or relay kubectl commands (those hit the API server directly).
kube-proxy programs each node's networking (iptables or IPVS rules, or hands off to a CNI doing the same) so that traffic to a Service's stable ClusterIP is load-balanced to a healthy backend Pod. Scheduling is the kube-scheduler's job, image pulls are the kubelet/runtime's, and kubectl talks to the API server directly. When Service traffic mysteriously doesn't reach Pods, kube-proxy and the CNI are where you look.
You are designing an admission control system for a large Kubernetes platform serving 200 internal teams. The platform team needs to enforce three policies cluster-wide:#
Show answer
I would create three separate webhook configurations, each scoped tightly to its resource type.
Resource requests (MutatingWebhookConfiguration): A mutating webhook scoped to pods with a namespaceSelector that excludes system namespaces. It defaults missing CPU/memory requests and limits to team-specific baseline values. Because it mutates the object, it must run in the mutating phase. I set its webhook name so it runs early in the mutating chain (before any other webhook that might read resource values).
TLS certificate validation (ValidatingWebhookConfiguration): A validating webhook scoped to ingresses that checks the referenced TLS secret or cert ARN against the ConfigMap of approved certificates. This is pure enforcement — no mutation — so it belongs in the validating phase. failurePolicy: Fail and timeoutSeconds: 3: if the webhook is unavailable, the Ingress creation is rejected rather than allowing an ingress with an unapproved certificate. The trade-off is that a webhook outage blocks all Ingress writes, which is acceptable because an unapproved TLS cert is a security violation.
Namespace labels (ValidatingWebhookConfiguration): A validating webhook scoped to namespaces that rejects Namespace creation or update if mandatory labels are missing. Again failurePolicy: Fail with a short timeout.
Ordering: MutatingWebhookConfiguration always runs before ValidatingWebhookConfiguration in the API server admission chain, so the resource-request defaults are applied before any validating webhook sees the Pod. Within the mutating phase, webhooks are ordered by name; I prefix names accordingly.
Scalability: Each webhook backend runs as a Deployment with HPA behind a ClusterIP Service. Because admission is synchronous — the API server blocks the original request until all webhooks return — webhook latency directly caps API throughput. I configure keep-alive connections between the API server and webhook backends, co-locate backends on nodes close to API servers, and set aggressive timeoutSeconds (2–3s) so a slow webhook degrades rather than hangs. I also instrument webhook latency histograms and alert if p99 exceeds 100ms.
This design exercise tests senior-level understanding of the API server admission chain: the two-phase (mutating then validating) ordering, per-webhook scoping via rules and namespaceSelector, failurePolicy trade-offs, and the synchronous latency coupling between webhooks and API throughput.
Related interview questions
Job market
See kubernetes salaries and hiring demand from live job postings.
The other 36 questions
This page shows 10 and marks what you pick. That's as far as a page can go. A free account opens the other 36 and keeps every answer. What you miss comes back until it's right: after a day, then at longer gaps.
Free · the whole bank · 100 answers per 30 days, each marked with written feedback